1. ホーム
  2. javascript

[解決済み] javascriptで配列をランダムに並べ替えるにはどうしたらいいですか?[重複しています]。

2022-03-12 19:09:35

質問

javascript で配列をランダムに並べ替えるにはどうすればよいですか?

私はこれを試しました。

array.sort(function(a, b){return Math.random()}); 

が、うまくいきません。

どうすればいいですか?

まず最初に、stackoverflowへようこそ!
この質問を見てください。 配列のランダムな並び替え

カスタム比較関数を用意することで、配列をランダムに並べ替えることができます。

var points = [1, 2, 3, 4, 5];
points.sort(function(a, b){return 0.5 - Math.random()});

しかし、上記の例は正確ではなく、ある数字が他の数字より優先されます。

最もポピュラーな正しい方法は、フィッシャー・イェーツ・シャッフルです。

var points = [40, 100, 1, 5, 25, 10];

for (i = points.length -1; i > 0; i--) {
  j = Math.floor(Math.random() * i)
  k = points[i]
  points[i] = points[j]
  points[j] = k
}