Hola y bienvenido
Tenés que usar la función
RAND([semilla]).
Esta función retorna un valor entre 0 y 1 y utiliza el valor de
semilla para generar los valores pseudoaleatorios, por lo que simpre retornará la misma secuencia de valores si usas la misma semilla (según la ayuda, si no colocas ninguna semilla fox utiliza 100,001 como semilla por defecto).
Para que genere siempre una secuencia diferente (y se parezca a una "verdadera" función aleatoria) debes utilizar una semilla generada a partir del valor de reloj de la pc (q es lo que hace el randomize en otros lenguajes). En visual fox pro 9 ésto se logra utilizando una semilla negativa y se recomienda (pasa en todos los lenguajes) que sólo la utilices la primera vez que llamas a RAND y luego no utilices ninguna. O sea que la primera vez llamas a RAND con, por ejemplo, RAND(-1) y las siguientes veces solo utiliza RAND().
Para generar números aleatorios entre 1 y 10 me robé el siguiente ejemplo de la ayuda del visual fox pro 9
:
gnLower = 1 && Valor minimo
gnUpper = 10 && Valor maximo
valor = INT((gnUpper - gnLower + 1) * RAND( ) + gnLower)
Este código devuelve solo valores enteros; si quieres, por ejemplo, que pueda salir 1.3 debes sacar la función
INT.
Ten cuidado en que si por casualidad RAND da 1 el valor obtenido será 11: (10 - 1 + 1)*1 + 1. Debes controlar esa posibilidad.