Reverse Monte Carlo methods