Create an Array of Random Numbers, Without Reusing Numbers

I recently had the situation where I had to create an array of 25 random numbers from 0-24, but no number could be repeated in the array. So after a little bit of racking my brain I came up with this.

//create an array to hold the numbers
var numArray:Array = new Array(25);

// create an array to hold the used numbers
var usedNumArray:Array = new Array(25);

for (var i:int = 0; i <= 24; i++){
	pickNum(i);
}

// run fuctions to get a random number and put in it the array
function pickNum(i:Number){
	var num:Number;
	do{
		//set num to a random number between 0-24
		num = getRandNum();
		//set the numArray[i] to the random number
		numArray[i] = num;
		//make sure the number is a new number
	}while(usedNumArray[num]);
	//if its a new number set the usedNumArray[num] to true
	usedNumArray[num]=true;
	//trace it back to make sure it works
	if(i == 24){
	trace(numArray)
	}
}

// get random number
function getRandNum():Number{
	return Math.floor(Math.random()*25);
}

I don't know if its the best way to handle it but it works. If there is a better way please let me know.

Tags: , ,

2 Responses to “Create an Array of Random Numbers, Without Reusing Numbers”

  1. Drew Preston Says:

    Thank you so much for posting this. I have gone through way too many tutorials to no avail trying to achieve the same thing.

    Cheers!

  2. alex Says:

    Hi Joe.
    thanks for the post.

Leave a Reply