Периодически рандом повторялся и в итоге некоторые переменные дублировались с затираением других...
Выход нашел так:

Код:
function MixArray(array, _array) {
//Обнуляем выходной массив. 0 - признак того что ячейка свободна
for (i = 0; i < array.length; i ++)
_array[i] = 0;
//Смотрим каждый элемент исходного массива
for (i = 0; i < array.length; i ++)
{
//Находим куда ставить элемент в выходной массив
new_pos = random(array.length);
// Если ячейка в выходном массиве занята или вставляем элемент на ту же
// позицию - меняем позицию
while(new_pos == i || _array[new_pos]!=0)
{
new_pos++;
if (new_pos>=array.length)
new_pos = 0;
}
//Вставка элемента на место
_array[new_pos] = array[i];
}
}
Помогли друзья Php-шники...
