Вероятно "толку нет" не в алгоритме, а в реализации.
Прекрасный алгоритм:

Код AS1/AS2:
var arr:Array = [1,2,3,4,5,6];
this.onEnterFrame = function () {
trace('Длина массива = ' + arr.length);
if (arr.length != 0)
{
var randomIndex:Number = Math.floor(Math.random() * arr.length);
var randomElement = arr[randomIndex];
trace('randomIndex = ' + randomIndex);
trace('randomElement = ' + randomElement);
trace('-------------------------');
arr.splice(randomIndex, 1);
}
else
{
delete this.onEnterFrame ;
trace('-------------------------');
trace('Конец массива');
}
};
Скопируй и запусти.