Павел
Randomize
LinePick\EntityPick делает практически тоже самое, только еще использует Space Partition алгоритм (незнаю какой именно) вместо перебора всех юнитов, который будет в вашем случае. Ваш К.О.

ЗЫ
3\5 квадратных корней для Ray-Sphere intersection (да еще вдобавок только 2д) это сильно, да

)