Imagine that you have a single-dimension array whose contents you'd like to display. You can do this with some very simple code:
Clearly, this code will list each element in the array, starting at the first element and iterating through to the last element. With just this code, though, with a static array your users will see the exact same output each time they visit this ASP page! Boring. Rather, why not randomly reorder the array so that, when the above snippet of code is used to display the array, the output differs?
Now, before you say, "OK, sure, let's do it," take a moment to step back and think about the challenges involved. How could we accomplish this? One quick and dirty way to do this is to step through the array one element at a time, randomly picking a number between the upper and lower bounds of the array, and swap the value of the element of the array at the current position with the element of the array at the position of the randomly selected number.
|WARNING: This Approach Has Subtle Flaws!|
|While the naive algorithm shown here certainly does jumble the contents of an array, it does not do so in a manner that produces an even distribution of random results. For more information on the shortcomings of this algorithm, as well as two alternative correct approaches, check out: Techniques for Randomly Reordering an Array.|
To see this method in action, review (and demo) the following code:
There are, of course, other methods for randomly reordering an array. We'll examine some alternative techniques in Part 2.