Javascript,jQuery

【JS】配列をシャッフルするアルゴリズム、Fisher-Yates

2018/02/05

配列内容をシャッフルして出力する際に「Fisher-Yates」というアルゴリズムを利用すると、素早く、偏りもなくシャッフルできるとのことで、コピペできるように備忘録としてポストします。

Fisher-Yatesアルゴリズム

参考にしたサイト様

以下のサイト様が分かりやすかったです。

スクリプト

[js]
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;
}
[/js]

使い方

[js]
testArray = ["a", "b", "c", "d", "e", "f", "g"];

resultArray = shuffle(testArray);

console.log(resultArray); // ←★結果
[/js]

結果

一例です。

["c", "a", "e", "b", "g", "f", "d"]

-Javascript,jQuery
-, , ,