JavaScript で配列をシャッフルする
Published Mar 11, 2025
⋅
Updated Mar 17, 2025
配列をシャッフルするときに使われる偏りのないアルゴリズムとして Fisher–Yates Shuffle というものがある。
JavaScript でこれを使って配列の値をシャッフルするには次のように書く。
// Function to shuffle an array
const shuffleArray = (array) => {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
もとの配列を変更せずに、シャッフルした新しい配列を返すには次のように書く。
// Function to shuffle an array
const getShuffledArray = (array) => {
const newArray = array.slice()
for (let i = newArray.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[newArray[i], newArray[j]] = [newArray[j], newArray[i]];
}
return newArray;
}
参考