Вариант раз - создаём случайные числа, пока не наберётся сколько надо уникальных:
function createRandomArr(length, min, max) {
if (length > (max -= ~-min)) {
throw 'невозможно создать массив указанного размера';
}
const values = new Set;
for (; values.size < length; values.add(min + Math.random() * max | 0)) ;
return [...values];
}
const arr = createRandomArr(6, 1, 36);
Вариант два - создаём массив со всеми возможными значениями, и вырезаем из него случайные элементы:
const createRandomArr = (length, min, max) => Array
.from({ length }, function() {
return this.splice(Math.random() * this.length | 0, 1);
}, Array.from({ length: max - min + 1 }, (_, i) => i + min))
.flat();
Вариант три - снова массив со всеми возможными значениями, но в этот раз перетасовываем его случайным образом и берём кусок нужного размера:
function createRandomArr(length, min, max) {
const arr = Array.from({ length: max - min + 1 }, (_, i) => i + min);
for (let i = arr.length; --i > 0;) {
const j = Math.floor(Math.random() * (i + 1));
[ arr[j], arr[i] ] = [ arr[i], arr[j] ];
}
return arr.slice(-length);
}