En informática, los numeros aleatorios en realidad no existen, sin embargo, se han desarrollado implementaciones de software a partir de algoritmos para simularlos. se les conocoe como numero pseudo aleatorios. Su naturaleza es puramente matemática y su precision es mas alta de acuerdo a la cantidad de elementos del rango en el cual vamos a obtener el valor denominado aleatorio o random.
en los procesos de generación de números aleatorios intervienen 4 elementos
1 El valor inicial o semilla: "S" en
gambas randomize es el procedimiento que se encarga de suministrarlo
2 La constante multiplicativa: "M" interna de rnd y que es la base matemática del cálculo
3 La constante aditiva: "A" que es la base de incremento.
4 El número "N" respecto al cual se calculan los restos y se lo pasamos por parametro a rnd; en el valor final
Cabe destacar que todos estos valores deben cumplir con un criterio en donde S,M,A < N. por tal razón en cualquier generador de números aleatorios bajo este esquema (
gambas es un caso) todo resultado aleatorio va a estar comprendido entre 0 y N-1.
como se requiere una semilla "N" que sea lo mas diferente todo el tiempo, el procedimiento randomize suministrará los segundos transcurridos desde la media noche hasta la hora de ejecución del programa como semilla.. Por esto es que difícilmente se repetirán, sin embargo, bajo este método a una hora exacta, un tiro de ruleta o dados nos arrojaría un resultado que ya sabemos y hemos calculado...... o sea hackers de casinos.
si quiere algo más seguro puede implementar el
método de las vegas o
método de montecarlo combinando y ademaś generar aleatoriamente una semilla de un número de posibilidades....
Bueno hasta aquí dejo lo académico. eso explica porque randomize y rnd tienen ese comportamiento en
gambas....
por lo demas, los amigos que escribieron anteriormente han dejado clara su implementación simple.