How to randomize (shuffle) a JavaScript array? How to randomize (shuffle) a JavaScript array? arrays arrays

How to randomize (shuffle) a JavaScript array?


The de-facto unbiased shuffle algorithm is the Fisher-Yates (aka Knuth) Shuffle.

See https://github.com/coolaj86/knuth-shuffle

You can see a great visualization here (and the original post linked to this)

function shuffle(array) {  let currentIndex = array.length,  randomIndex;  // While there remain elements to shuffle...  while (currentIndex != 0) {    // Pick a remaining element...    randomIndex = Math.floor(Math.random() * currentIndex);    currentIndex--;    // And swap it with the current element.    [array[currentIndex], array[randomIndex]] = [      array[randomIndex], array[currentIndex]];  }  return array;}// Used like sovar arr = [2, 11, 37, 42];shuffle(arr);console.log(arr);