В принципе можно разбить вектор перемещения на n частей и для каждой части дать перпендикулярное вектору смещение в каком-то диапазоне.
Т.е. вместо движения из (0,0) в (5,5) по маршруту (0,0)-(1,1)-(2,2)-...-(5,5) двигаться с случайным смещением, например для смещения в диапазоне от -1 до 1 будет (0,0)-(1,2)-(3,2)-(3,3)-(4,5)-(5,5)