osgsm.io
HomeNotesJavaScript で配列をシャッフルする

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;
}

参考