function randList(max:Number, num:Number, shuffled:Boolean):Array { var tempArray:Array = []; for (i = 0; i < max && num > 0; ++i) { if (Math.floor(Math.random() * (max - i)) < num) { tempArray.push(i + 1); num--; } } if (shuffled) { tempArray.sort(function () { return Math.floor(Math.random() * 2) ? true : false; }); } return (tempArray); }
Just provide the maximum number (M) in your list and the number of items (N) you wish to generate from that list:
// to generate an array of 10 unique sequential numbers // between 1 and 10 var myArr:Array = randList(10, 10); trace(myArr); // to generate an array of 5 unique sequential numbers // between 1 and 100 var myArr:Array = randList(100, 5); trace(myArr);
Finally, the function also allows for the list of N random numbers to be shuffled:
// to generate an array of 10 unique shuffled numbers // between 1 and 10 var myArr:Array = randList(10, 10, true); trace(myArr); // to generate an array of 5 unique shuffled numbers // between 1 and 100 var myArr:Array = randList(100, 5, true); trace(myArr);
2 comments:
Wow that what i was looking for thanks a lot man , can you do that for 2 specified number i mean is there any way to do random generated numbers between two number not just 0 to any !
Sure there is. I've altered the function to do just that in this follow-up post
Post a Comment