Random walk optimisation algortihm