Sorry, I wish I had seen this thread earlier since you probably already made a work around, but I don't often browse the advice forum. I believe the problem you are running in to is that the .NET random number generator is seeded with the current time and seeds when you create the Random object. It works best when you only create one instance of the Random object and reuse that.
For example, in this case the random number generated will most likely be the same each time:
for (int i =0; i < 100; i++)
{Random r = new Random();
int random number = r.Next(0, 1000);
}
But in this case, the random number will be different:
Random r = new Random();
for (int i =0; i < 100; i++)
{int random number = r.Next(0, 1000);
}
If you make the random object as a static field and only instantiate it once it should fix this. The .NET random number generate does not suck, it just has to be used properly
If you have any other .NET type questions let me know.
Edit: just noticed you already noticed this a couple posts up