Почему мой код генерирует больше редких значений,нежели меньших

у меня есть функция:

randombox(messages) {
    const boxes = ['C', 'U', 'R', 'E', 'L'];
    const chanche = this.utils
      .randomize(0,100)
      .toFixed(0);
    let win;
    switch (true) {
      case chanche <= 10 && chanche > 5:
        win = boxes[0];
        break;
      case chanche <= 5 && chanche > 8:
        win = boxes[1];
        break;
      case chanche <= 8 && chanche > 3:
        win = boxes[2];
        break;
      case chanche <= 3 && chanche > 1:
        win = boxes[3];
        break;
      case chanche <= 1:
        win = boxes[4];
        break;
      default:
        return;
    }
    return win;
  }

Я прокрутил её 1000 раз и получил кл получения той или иной коробки - результат:

C : 57
U : 0
R: 0
E: 21
L: 31

Рандомайзер:

randomize(min, max) {
    return Math.floor(Math.random() * (max - min) + min);
}

Что я делаю не так,и что можно сделать чтобы оно отвечало своему шансу:

C : +- 10
U : +- 5
R: +- 8
E: +- 3
L: +- 1

(за 1000 прокруток)


Ответы (1 шт):

Автор решения: Aziz Umarov

Потому что у вас очень замечательные условия

case chanche <= 10 && chanche > 5: От 5 до 10. То есть только 6,7,8,9,10.

case chanche <= 5 && chanche > 8: Нет таких чисел.

case chanche <= 8 && chanche > 3: От 3 до 8 Зайдёт только если попадется от 3 до 5 если исключить 3 не включено то остаётся только 4, 5.

case chanche <= 3 && chanche > 1: Если 3 или 2.

case chanche <= 1: Если только 0 или 1.

Ну и подумайте теперь почему.

→ Ссылка