| 
 Рандомные неповторяющиеся числа Привет всем. Хоть убейте, ищу уже несколько дней. Может подскажите, нужен генератор рандомных неповторяющихся чисел (например, от 0 до 100). | 
| 
 
var randomNumber = function() {
alert(Math.floor(Math.random()*101)) ;
} ;
randomNumber() ;
randomNumber() ;
randomNumber() ;
Не? | 
| 
 Если нужен генератор рандомных, не повторяющихся чисел из заданного диапазона, то вот он:  
function generateArrayRandomNumber (min, max) {
	var totalNumbers 		= max - min + 1,
		arrayTotalNumbers 	= [],
		arrayRandomNumbers 	= [],
		tempRandomNumber;
	while (totalNumbers--) {
		arrayTotalNumbers.push(totalNumbers + min);
	}
	while (arrayTotalNumbers.length) {
		tempRandomNumber = Math.round(Math.random() * (arrayTotalNumbers.length - 1));
		arrayRandomNumbers.push(arrayTotalNumbers[tempRandomNumber]);
		arrayTotalNumbers.splice(tempRandomNumber, 1);
	}
	return arrayRandomNumbers;
}
//	Нужно учесть что в диапазоне участвуют и минимальное и максимальное число
//	тоесть если задать (0, 100) то на выходе получим массив из 101-го числа
//	от 1 до 100 и плюс число 0
alert(generateArrayRandomNumber(45, 67));
P.S. Я этот генератор использовал для генерации плейлистов для онлайн проигрывателя. | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 Рандомные и неповторяющиеся - два принципиально несовместимых требования. А если же вы хотите рандомную последовательность из 100 чисел, то это совсем другая задача | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 по-моему, тут Цитата: 
 или же использовать объект, чтобы не splice'ить огромный массив. | 
| 
 
function inArray(arr, num){
				for (var i = 0; i < arr.length; i++) {
					if (num == arr[i]) return true;
				};
				return false;
			}
		function createRand(randLength, min, max){
			var randArray = [],
				i = 0;
			if (randLength>(max-min+1)) {
				return null;
			}
			while (i < randLength) {
				var rand = Math.floor(Math.random() * (max - min + 1)) + min;
				if (!(inArray(randArray,rand))){
					i++;
					randArray.unshift(rand);
				}
			};
			return randArray;
		}
использовать createRand(длина массива, минимальное, максимальное); | 
| 
 Chisarat, в среднем от 2 до 5 попыток сгенерировать одно подходящее число ... а если неповезёт, зациклимся? :-? 
function inArray(arr, num){
				for (var i = 0; i < arr.length; i++) {
					if (num == arr[i]) return true;
				};
				return false;
			}
		function createRand(randLength, min, max){
			var randArray = [],
				i = 0;
			if (randLength>(max-min+1)) {
				return null;
			}
            var x = 0;
			while (i < randLength) { x++
				var rand = Math.floor(Math.random() * (max - min + 1)) + min;
				if (!(inArray(randArray,rand))){
					i++;
					randArray.unshift(rand);
				}
			};
            alert([randLength,x]) //длина и число генераций
			return randArray;
		}
createRand(100, 0, 99)
 | 
| Часовой пояс GMT +3, время: 11:19. |