Lo primero que es necesario que entiendas, es que con la clase Random se generan números pseudo-aleatorios, por tal motivo (y si has probado el ejemplo que te pasaron) siempre que corras el programa te va a salir exactamente el mismo número aleatorio (a menos de que cambies la semilla), o la misma secuencia. Esto se puede observar en el propio método:
synchronized public void setSeed(long seed) {
this.seed = (seed ^ 0x5DEECE66DL) & ((1L << 48) - 1);
haveNextNextGaussian = false;
}
La manera más fácil (desde mi punto de vista) de generar números aleatorios (NO pseudo-aleatorios), es utilizar el método setSeed de la siguiente manera:
import java.util.*;
public class aleatorio {
public aleatorio() {
r.
setSeed(new Date().
getTime());}
public int generarAleatorio() {
int n=r.nextInt(1000);
return n;
}
}
Así, la semilla cambiará cada vez que se ejecute el programa, y por ende los números sí serán aleatorios (al menos en la práctica).
Un saludo!!!