いくつかを読んだ後、私はthis answerは一般的に受け入れられたことを見て、SOの質問「どのようにシャッフルする」:シャッフル機能の欠点は何ですか?
function shuffle (array) {
var tmp, current, top = array.length;
if(top) while(--top) {
current = Math.floor(Math.random() * (top + 1));
tmp = array[current];
array[current] = array[top];
array[top] = tmp;
}
return array;
}
しかし、問題は、単にランダムにリストの要素を選ぶと何でしょう、like I posted:
function shuffle (array) {
var result = [];
while(array.length){
var index = Math.floor(Math.random() * array.length);
result.push(array.splice(index, 1)[0]);
}
return result;
}
インデックスは毎回ユニークではないかもしれません。 – Durga
@Durgaそれは問題ではありません。それは – Li357
の後に選択されないように値をスプライスしています。これはあなたのメソッドを含む本当に素晴らしい説明です:https://bost.ocks.myke/shuffle/ –