Since this is .NET, you shouldn't be using Randomize and Rnd. You should scrap that in favor of the Random object. For one thing, the way you are using Randomize will cause you trouble if you were to test the program by calling Simulate in a tight loop. The issue is that Randomize will seed the random number generator with the current system time down to the second. By calling Simulate in a tight loop, you would end up calling Randomize more than once per second, which would mean that it would seed more than once with the same value, which would mean that your sequence would be exactly the same over and over and over, until the second advanced and you got a new sequence again and again.

The Random object has the same issue, of course, but if you create it a single Random object at form scope then you won't have that issue. You could also solve the problem by calling Randomize only one time, such as in Form Load, but what's the point of using Rnd, which sucks, versus the GetNext method of Random, which is far easier to get right?