Чтобы не повторялись, надо исключить выбранное первое из вариантов для второго.
Если для 1-го значения от
min
до
max
,
то для 2-го остаётся уже на 1 меньше: от
min
до
max - 1
.
И если получилось значение больше либо равное 1-му, надо добавить 1.
на пальцахДопустим, нужны два неодинаковых случайных от 0 до 5.
0 1 2 3 4 5
^ выпало "2"
для второго остались:
0 1 3 4 5
выбираем случайное из
0 1 2 3 4
и если получилось >= 2
то добавляем 1
0 1 2 3 4
^ выпало "4"
добавили 1 получилось 5
Итого, 2 и 5.
Пример реализацииfunction twoRandom(min, max) {
if (min > max - 1) throw "min should be less or equal max - 1";
a = Math.floor(Math.random() * (max - min + 1)) + min;
b = Math.floor(Math.random() * (max - min)) + min;
if (b >= a) b = b + 1;
return [a, b];
}