如果您想要 15 个介于 1 和 20 之间且不重复的随机整数,那么这就是您范围内的大部分整数。我只会生成数字 1-20 并随机删除 15 次:
function randomIntegersInRange(min:int, max:int, count:uint):Array {
if (min >= max || count > max - min) throw new ArgumentError("Invalid arguments!");
var integers:Array = [];
for (var i:int = min; i <= max; i++) {
integers.push(i);
}
var randomIntegers:Array = [];
for (i = 0; i < count; i++) {
randomIntegers.push(integers.splice(Math.random() * integers.length, 1));
}
return randomIntegers;
}
randomIntegersInRange(1, 20, 15); // 16,4,3,13,8,17,1,19,20,15,6,18,14,10,12
randomIntegersInRange(1, 50, 20); // 27,3,19,9,42,23,13,29,11,24,41,31,26,2,7,30,49,33,6,10
注意:如果您想要大范围(例如 1 到 1,000,000 之间的 15 个整数),我不建议您这样做。