Честно, не пойму - зачем вы их постоянно в массив пихаете?)
Если вот так:

Код AS3:
public function moveBalls():void {
if (Math.random() > 0.5){
moveX();
} else {
moveY();
}
}
UPD: люди добрые, подскажите, как тут выравнивание нормально делать?)
Добавлено через 10 часов 7 минут
Кстати, в последнем примере, шарик не двигается не потому, что что-то не выбирается, а потому, что что-то не вызывается - т.е. вы высчитали a (которое, как я понимаю - индекс элемента массива), но функцию-то нигде не вызвали нужную.
Кроме того, если я правильно понял замысел, умножать нужно не на

Код AS3:
arr.length
а на

Код AS3:
arr.length - 1
. Иначе в определенных случаях вы будете вылетать за пределы массива.