複数回実行すると、異なる要素順になります。...すべての要素順は等しい発生確率である必要があります。並び替えられる可能性があり、各ケースの発生確率は同じです。3];shuffle(arr);alert(arr);それはいくらか動作します。正または負のランダム値なので、ソート関数はランダムに要素を並び替えます。ソート関数はこのように使われることを意図していないので、すべての順列が同じ確率を持つわけではありません。下のコードを考えてみてください。1000000回実行し、可能性のあるすべての順序の出現数をカウントします。他のものよりはるかに多く出現しています。JavaScriptエンジンによって異なる可能性がありますが、このアプローチが信頼できないことが分かります。配列と比較関数をそこに投げ、配列がソートされることを期待します。比較の完全なランダム性によりブラックボックスが狂ってしまい、どの程度狂ってしまうかはエンジンによって異なる具体的な実装に依存します。このタスクをするための他の良い方法があります。呼ばれる素晴らしいアルゴリズムがあります。この考えは、逆順に配列を見ていき、各要素をその前のランダムな要素と入れ替えます。}}同じ方法でテストしてみましょう。すべての順列は同じ確率で表示されています。オーバヘッドがありません。