产生不重复的随机数

/*
	count : 随机数的个数
	numericalRange : 随机数范围
*/
function NonRepeatedRandomVal( count, numericalRange )
{
	var array = [];
	var i = 0;
	var tempArray = numericalRange.split('~');
	var x1 = parseInt( tempArray[0] );
	var x2 = parseInt( tempArray[1] );

	if (x2 - x1 < count) {
		alert('产生的随机数个数不能小于最大范围!');
		return false;
	}
	
	while(i < count)
	{
		var flag = true;

		var temp = parseInt( x1 + Math.random() * (x2 - x1) );

		for(var i=0; i<array.length; i++)
		{
			if (array[i] == temp) 
			{
				flag = false;
				break;
			}
		}

		if (flag) 
		{
			array.push(temp);
			i++;
		}
	}

	return array;
}

//测试例子
var array = NonRepeatedRandomVal( 100, '0~100' );
if (array) 
{
	console.log( array.sort(function(a, b){
		return a - b;
	}) );
}

你可能感兴趣的:(产生不重复的随机数)