Может просто
перемешать массив чисел?
function shuffle( array ) {
for(var j, x, i = array.length; i; j = parseInt(Math.random() * i), x = array[--i], array[i] = array[j], array[j] = x);
return true;
}
var a = [1,2,3,4,5,6,7,8,9];
shuffle(a);
out.innerHTML = a.toString();
https://jsfiddle.net/uhhqben9/UPDATE:
Все просто — функция перемешивает массив чисел.
Вот ваша функция:
function getRandom(min, max) {
var arr = [];
for (var i = 0; i < max; i++) {
x = Math.floor(Math.random() * (max - min + 1)) + min;
if (arr.indexOf(x)) {
return;
}
else {
arr.push(x);
}
return arr;
}
}
Дорабатываем ее с использованием функции
shuffle:
function getRandom(min, max) {
// Получаем массив чисел из диапазона от min до max
var arr = Array.from(Array(max - min + 1).keys(), x => x + min);
// Перемешиваем
shuffle(arr);
// возвращаем перемешанный массив
return arr;
}
И можем использовать для получения массивов неповторяющихся случайных чисел
var a = getRandom(3,15);
https://jsfiddle.net/uhhqben9/1/
.