> 
> **Possible Duplicate:**  
> 
> [Why does it appear that my random number generator isn't random in C#?](https://stackoverflow.com/questions/932520/why-does-it-appear-that-my-random-number-generator-isnt-random-in-c)  
> 
> [How can I generate truly (not pseudo) random numbers with C#?](https://stackoverflow.com/questions/1234094/how-can-i-generate-truly-not-pseudo-random-numbers-with-c) 
> 
> 
> 

I've created a dice game where the dice is based on a percentile, 1-100.

```
public static void Roll()
{
    Random rand = new Random((int)DateTime.Now.Ticks);
    return rand.Next(1, 100);
}

```

But I don't feel like it's a real random based on current time.

If I do 

```
for (int i = 0; i < 5; i++)
{
   Console.WriteLine("#" + i + " " + Roll());
}

```

They would all be the same values, because the `DateTime.Now.Ticks` didn't change, it seeded the same number.

I was thinking I could generate a new random seed if the seed was the same due to the current time, but it doesn't feel like an honest "re-roll"

What should I do to try and replicate a close to real/honest dice roll? Should I use the `RNGCryptoServiceProvider` class to generate rolls instead?