A method is proposed to efficiently obtain free energy differences. In the present algorithm, free energy calculations proceed by the realization of an energy difference space random walk. Thereby, this algorithm can greatly improve the sampling of the regions in phase space where target states overlap.