Ho effettuato una prova e ho la "quasi" certezza di ciò che ho detto prima:
codice:
public class Prova {
   public static void main(String [] args) {
      for (int i=0; i<100; i++)
      System.out.println(System.currentTimeMillis());
   }
}
Questo codice stampa a video il valore corrente del timer di sistema (il metodo si chiama currentTimeMillis() e non getCurrentTimeMillis() come ho erroneamente scritto prima).
Come si può notare, a video compare più volte lo stesso valore e cambia ogni tot chiamate al metodo (questo tot dipende, ovviamente, dalla granularità del sistema oltre che dal tipo e dalla velocità del processore). Nel mio caso ho effettuato il test su un PIII 700 MHz ed il valore cambia ogni 32 chiamate circa, con una granularità di 10 millisecondi.
Questo significa che, con due chiamate successive, ho un'alta probabilità che il valore restituito da System.currentTimeMillis() sia lo stesso e che quindi due generatori di numeri casuali possano essere inizializzati con lo stesso identico seme, risultando, pertanto, del tutto identici.

Per questo ti consiglio di utilizzare un generatore statico oppure, meglio ancora, utilizzare il generatore di Math.random() che è statico e non può essere toccato dal tuo programma.


Ciao.