Why should the number of subcarriers of OFDM system be a power of 2? I notice that almost all papers use the number of subcarriers of 64, 128,256.. so on, which is a number of $2^k$ and $k$ is an integer. 

Why is the number of subcarriers always like that? Can we use any number or it must be only using one of those numbers?
Implementing an IFFT and FFT engine which is a power of $2$ is easier in hardware and hence if an OFDM system is talked about, it is talked about in $2^k$ length FFT. All practical Communication system based on OFDM use $2^k$ length FFT-IFFT engines.

However, for OFDM in principle, it is not required to have FFT-IFFT in power of $2$.

There are different factors which may affect the choice of number of sub-carriers based on multi-path channel response in the frequency range of operation and maximum doppler spread the channel expect to suffer.