フィッシャー–イエーツのシャッフル、分割代入で入れ替え


フィッシャー–イエーツによる配列のシャッフル。
入れ替え部分が分割代入で書ければ一行で済んでスッキリ。

const shuffleArray = arr => {
  let n = arr.length
  while (n) {
    const r = Math.floor(Math.random() * n--);
    [arr[r], arr[n]] = [arr[n], arr[r]]
  }
  return arr
}