Int32 iPreSeed = Convert.ToInt32(
DateTime.Now.Ticks % Int32.MaxValue);
Random fixRand = new Random(
(new Random(iPreSeed)).Next());
int iRndValue = fixRand.Next();
Se llama dos veces a Random para asegurarse que el generador pseudo-aleatorio quede bien iniciado.