JavaScriptで配列内の要素をシャッフル(ランダムソート)する方法で、理論上は偏りなくシャッフルできるアルゴリズムとして有名なFisher–Yates shuffleを用いたものになります。 「Fisher–Yates shuffle」については割愛するので、詳しく知りたい方は「フィッシャー–イェーツのシャッフル - Wikipedia」を参照してください。 const shuffle = ([...array]) => { for (let i = array.length - 1; i >= 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } return array; } ざっくりになりますが動きとしては、まず配列内の末尾要
![JavaScript:配列内の要素をシャッフル(ランダムソート)する方法 - NxWorld](https://cdn-ak-scissors.b.st-hatena.com/image/square/4c4163489b5b4bba51c7a07aa484bcf0ddbe5316/height=288;version=1;width=512/https%3A%2F%2Fwww.nxworld.net%2Fthumbnail%2Fjs-array-shuffle.png)