配列内容をシャッフルして出力する際に「Fisher-Yates」というアルゴリズムを利用すると、素早く、偏りもなくシャッフルできるとのことで、コピペできるように備忘録としてポストします。
Fisher-Yatesアルゴリズム
参考にしたサイト様
以下のサイト様が分かりやすかったです。
世界最速の配列シャッフルアルゴリズム、Fisher-Yatesアルゴリズム: PandaNoir
![]()
404 Not Found | 株式会社したらば
Fisher-Yates shuffle – Wikipedia, the free encyclopedia
![]()

Fisher–Yates shuffle - Wikipedia
スクリプト
1 2 3 4 5 6 7 8 9 10 11 12 |
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; } |
使い方
1 2 3 4 5 |
testArray = ["a", "b", "c", "d", "e", "f", "g"]; resultArray = shuffle(testArray); console.log(resultArray); // ←★結果 |
結果
一例です。
[“c”, “a”, “e”, “b”, “g”, “f”, “d”]