
Код:
randomize = function (source) {
var result = [];
var heap = source.concat();
for (var i = 0; i<source.length; i++) {
var rnd = random(heap.length);
result.push(heap[rnd]);
heap.splice(rnd, 1);
}
return result;
};
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
b = randomize(a);
trace(a);
trace(b);
пояснение:
heap = source.concat();
это всего лишь способ скопировать исходный массив, чтобы не модифицировать его при сортировке...
(конкат присоединяет к исходному массиву пустое место (потому что аргумент не указан) и возвращает новый массив (получается точная копия исходного =) ))