不重复的随机数

参考

// [min, max]
let randomMinAndMax = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

// [min , max)
let randomMinOffMax = (min, max) => {
  return Math.floor(Math.random() * (max - min)) + min;
}

// (min, max]
let randomOffMinMax = (min, max) => {
  return Math.ceil(Math.random() * (max - min )) + min;
}

let randomIntegerArr = (minNum, maxNum, len) => {
  if (maxNum > minNum) {
    let [i, setArr, result, diffLen] = [minNum, [], [], maxNum - minNum];

    while (i < maxNum) {
      setArr.push(i);
      i++;
    }
    // 随机出现一次
    setArr.sort(() => {
      return 0.5 - Math.random();
    });

    // 均匀输出
    i = 0;
    while (i < len) {
      result.push(setArr[randomMinOffMax(0, diffLen)]);
      i++;
    };

    return result;
  } else {
    return;
  }
};