単純に入れ換えを繰り返す以下の方法は、一度入れ換えた
要素を再び入れ替えたりしちゃうんで、厳密には偏りが出る。

for (i = 0; i < array.count; i++)
swap(array[i], array[ rand(array.count) ]);

偏りを無くすにはこんな感じにしてやればいい。

for (i = 0; i < array.count - 1; i++)
swap(array[i], array[ i + rand(array.count - i) ]);

(あくまで概念だから、そのままTJSで動く式じゃないよ)