no puedo ver lo suficiente de su código, pero esto debería ayudar si estoy acertar acerca de cómo está estructurado el código. .. debería aclarar por qué los números son los mismos, o cerca de él, porque tuve un problema similar y así es cómo lo resolví y por qué creo que esta fue la solución.
que tenían un código que genera randoms que se parecía a esto (muy simplificado)
for (some loop logic)
{
Random r = new Random();
int myRandomNumber = Random.Next()
}
Cuando esto ejecutado realmente creó los mismos números exactos para una parte del bucle, (digamos 8 iteraciones) y luego conmutada a un nuevo número repetido durante 9 iteraciones, etc. lo resuelto cambiándola a tener este aspecto:
Random r = new Random();
for (some loop logic)
{
int myRandomNumber = Random.Next()
}
estoy seguro de que otros frase que mejor, pero si se declara al azar fuera del bucle, la instancia de la clase Random fue capaz de realizar un seguimiento de la última ra número de ndom generado, y asegurarse de que el siguiente fuera realmente aleatorio. Al tenerlo en el ciclo (como en el primer ejemplo) cada iteración creó un nuevo objeto Aleatorio, por lo que simplemente usó cualquier lógica (basada en el tiempo, supongo) para generar un número aleatorio sin saber que una instancia diferente acababa de generar el mismo número.
Muchacho, espero que tenga sentido ... Ya es tarde, y no estoy explicando claramente, pero creo que su problema puede ser que está creando una nueva instancia de la clase aleatoria en su lógica de bucle y debes declararlo fuera del ciclo.
Editar - añadió
Este artículo cubre por qué este es el caso:
http://geekswithblogs.net/kakaiya/archive/2005/11/27/61273.aspx
¿por qué este enfoque no garantizar la producción de dos colores similares en una fila? – mjv
La función 'Random()' genera números aleatorios basados en la semilla, siempre y cuando *** reutilice *** el objeto Random. Por ejemplo, en el constructor de su clase RandomColor. –
@KMan: tienes razón. Sin embargo, estadísticamente, no hay nada que evite que el fragmento sugiera, cuando se invoca por segunda vez, para producir un color similar al color anterior. De hecho, la probabilidad de que esto ocurra es la misma que cuando se dibujan los 3 valores compoment a la vez, como se hace en el fragmento del OP. – mjv