Мне ваша программа кажется до жути не логичной. Проще не изменять ее, а переписать заново. Знаю что вам
нужен именно ваш код, но вдруг пригодится, хотя он и не может добавлять случайный числа в уже существующий массив:
(function() {
this.arrayFilledWithRandomNumbers = function(amount_of_numbers) {
var base = amount_of_numbers,
random_number,
array = [];
while (amount_of_numbers) {
random_number = randomNumber(base);
if (!hasNumber(array, random_number)) {
array.push(random_number);
amount_of_numbers -= 1;
}
}
return array;
};
function hasNumber(array, number) {
var has_element = false;
array.forEach(function(element) {
if (element == number) {
has_element = true;
}
});
return has_element;
}
function randomNumber(base) {
return Math.floor(Math.random() * base);
}
}());
console.log(arrayFilledWithRandomNumbers(3));
console.log(arrayFilledWithRandomNumbers(54));
console.log(arrayFilledWithRandomNumbers(12));