Naoki Otsu

JavaScriptで配列をシャッフルさせる

2016-09-22

ピュア(Vanilla)なJavaScriptでの配列のシャッフル。

var targets = [1,2,3,4,5];
var results = [];
while (targets.length) {
    results.push(targets.splice(Math.floor(Math.random() * targets.length), 1)[0]);
}
console.log(results); // 例: [5, 1, 4, 3, 2]

ただちょっと注意も

※ただこのやり方だと全く同じ配列が返されてしまう場合もあります。
間違いなくシャッフルさせなければいけない時の記述はもう少し複雑になりますが、下記を参照すると良いです。

JavaScriptで配列のシャッフル