Автор Леонид Кузнецов задал вопрос в разделе JavaScript
вопрос про JS, рандом чисел в % и получил лучший ответ
Ответ от Николай Веселуха[гуру]
function getRandomInteger(a, b) {
let min, max;
a = Number.parseInt(a, 10);
if (Number.isNaN(a)) {
console.error("Первый аргумент getRandom не является целым числом.");
return NaN;
}
b = Number.parseInt(b, 10);
if (Number.isNaN(b)) {
console.error("Второй аргумент getRandom не является целым числом.");
return NaN;
}
min = a < b? a : b;
max = a > b? a : b;
return Math.floor(Math.random() * (max - min)) + min;
}
function randomArray(begin, end, mask) {
if (Array.isArray(mask)) {
let array, i, rnd, num, j;
array = [];
for (i = 0; i < mask.length; i += 1) {
rnd = getRandomInteger(begin, end);
if (Number.isNaN(rnd)) {
console.error("getRandomInteger вернула NaN.");
break;
}
num = Number.parseInt(mask[i], 10);
if (Number.isNaN(num)) {
console.error((i + 1) + "-й элемент в mask не является целым числом.");
num = 0;
}
for (j = 0; j < num; j += 1) {
array.push(rnd);
}
}
return array;
} else {
console.error("Третий аргумент randomArray не является массивом")
}
}
let mask = [2, 3, 5, "d", 3];
let array = randomArray(6, "12", mask);
for (let i = 0; i < array.length; i += 1) {
alert(array[i]);
}
Создаешь массив с нужными значениями
{7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,...
"Перемешиваешь" любым способом (например выбираешь случайное число-индекс и меняешь местами с 0 индексом )