I need to create a non sequential list of numbers that fit within a range. For instance i need to a generate a list of numbers from 1 to 1million and make sure that non of the numbers are in a sequential order, that they are completly shuffled. I guess my first question is, are there any good algorithms out there that could help and how best to implement this.
I currently am not sure the best way to implement, either via a c# console app that will spit out the numbers in an XML file or in a database that will spit out the numbers into a table or a set of tables, but that is really secondary to actually working out the best way of “shuffling” the set of numbers.
Any advice guys?
Rob
How “non-sequential” do you want it?
You could easily generate a list of random numbers from a range with the Random class:
Edit to add
Admittedly the Durstenfeld algorithm (modern version of the Fisher–Yates shuffle apparently) is much faster:
For the range 1 to 10000 doing a brute force “find a random number I’ve not yet used” takes around 4-5 seconds, while this takes around 0.001.
Props to Greg Hewgill for the links.