Вы можете оставить Set
, чтобы проверить, сгенерировано ли уже число, и использовать рекурсию, если это так, а также для генерации чисел с разностью 3, просто умножьте и разделите числа на 3
Math.floor(Math.random() * 20)
let generateRandom = (function(limit) {
let set = new Set([20]);
return function getRandom() {
let random = Math.floor(2 + Math.floor(Math.random() * 20 / 3) * 3);
if (set.has(random)) {
return getRandom()
} else {
set.add(random)
return random
};
}
})()
console.log(Array(5).fill(null).map(generateRandom))
Примечание: Помните, что вы можете сгенерировать максимум 5 чисел с ограничением, не пытайтесь сгенерировать больше, иначе вы окажетесь на Range Error
.