JavaScript で配列のシャッフル

このエントリーをはてなブックマークに追加

配列をシャッフルする際は、 Fisher–Yates shuffle というアルゴリズムがあって、それを利用するとかなり速いシャッフルが可能とのことで、毎回利用しているのですが、毎回必要になるたびに調べている一つだったりするので、メモエントリー。

JavaScript でシャッフルするコード

以下のページのスクリプトを参考にさせていただきました。

Fisher–Yates Shuffle

function shuffle(array) {
  var n = array.length, t, i;

  while (n) {
    i = Math.floor(Math.random() * n--);
    t = array[n];
    array[n] = array[i];
    array[i] = t;
  }

  return array;
}

var test_array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
shuffle(test_array);

掲載写真

Photographer
Todd Klassy
License
Creative Commons (BY-SA)