Esistono diverse ragioni per questa discrepanza:
1. Dal punto di vista puramente statistico, assumendo che i due esperimenti siano indipendenti, è improbabile che i risultati siano gli stessi.
1. Siccome il generatore non è davvero casuale, sullo stesso sistema è possibile generare gli stessi valori passando lo stesso valore alla funzione srand. Se non è questo il caso, per esempio se hai inizializzato il valore usando il tempo attuale, allora è decisamente improbabile ottenere gli stessi valori.
2. Lo standard non definisce infine come debba essere implementato il generatore di numeri casuali. L'implementazione potrebbe essere (e molto probabilmente è) molto diversa. I valori generati su due sistemi diversi sono quindi quasi sicuramente diversi.
Se è importante generare gli stessi valori su sistemi diversi è necessario fare uso di una qualche libreria che garantisca che l'implementazione è la stessa nei due sistemi (di solito significa includere una qualche libreria come
PCG). Se desideri ottenere esattamente 1000000 per ogni valore allora credo che il modo più semplice sia fare come si fa quando si gioca a carte: mischiare il mazzo ogni volta che finiscono le carte. In altre parole ti crei un array di 6 valori e lo mischi ogni volta che hai estratto 6 valori. Ovviamente questo metodo non corrisponde all'idea di lanciare un dato per un certo numero di volte.