supasympa
2/13/2017 - 4:06 PM

Creates a 6 random numbers in an array less than a maximum

Creates a 6 random numbers in an array less than a maximum

const luckyDip = () => {
  const gen = (upper, lower = 1, arr = [] ) => {
    arr.push(upper)

    return upper === 1 ? arr : gen(upper-1, lower, arr)
  }

  const shuffle = (array) => {
    let currentIndex = array.length, temporaryValue, randomIndex

    // While there remain elements to shuffle...
    while (0 !== currentIndex) {

      // Pick a remaining element...
      randomIndex = Math.floor(Math.random() * currentIndex);
      currentIndex -= 1;

      // And swap it with the current element.
      temporaryValue = array[currentIndex];
      array[currentIndex] = array[randomIndex];
      array[randomIndex] = temporaryValue;
    }

    return array;
  }

  return shuffle(gen(MAX)).splice(0,6)
}