Вы, кажется, генерируете направление в градусах и передаете его в Math.Sin, который принимает угол в радианах.360 / 2PI = 57,3 (приблизительно), поэтому вы с большей вероятностью выберете угол между 0 и 0,3 радианами, чем другие, большие углы.
Когда у вас так много итераций, также возможно, что естьмаленькая ошибка округления где-то