1. ホーム
  2. javascript

[解決済み] JavaScriptの配列をランダム化(シャッフル)する方法は?

2022-03-15 07:44:01

質問

このような配列があります。

var arr1 = ["a", "b", "c", "d"];

ランダム化/シャッフル化するには?

解決方法は?

デファクトの不偏シャッフルアルゴリズムは フィッシャー・イエーツ(別名クヌース)・シャッフル .

を見ることができます。 素晴らしいビジュアライゼーション (元の記事も リンク先 )

function shuffle(array) {
  let currentIndex = array.length,  randomIndex;

  // While there remain elements to shuffle...
  while (currentIndex != 0) {

    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex--;

    // And swap it with the current element.
    [array[currentIndex], array[randomIndex]] = [
      array[randomIndex], array[currentIndex]];
  }

  return array;
}

// Used like so
var arr = [2, 11, 37, 42];
shuffle(arr);
console.log(arr);

その他の情報 アルゴリズムについて を使用しました。