Il pacchetto rand può essere utilizzato per generare numeri pseudo-casuali, che sono generati sulla base di uno specifico valore iniziale (chiamato "seme").
Una scelta popolare per questo seme iniziale è ad esempio l'ora corrente in nanosecondi, un valore che probabilmente differirà quando si esegue il programma più volte. È possibile inizializzare il generatore di numeri casuali con l'ora attuale con qualcosa di simile:
rand.Seed(time.Now().UnixNano())
(non dimenticate di importare il pacchetto time per questo)
C'è anche un altro pacchetto denominato crypto/rand che può essere utilizzato per generare valori casuali migliori (questo generatore potrebbe anche prendere in considerazione i movimenti del mouse dell'utente, il calore attuale del processore e molti altri fattori in considerazione). Tuttavia, le funzioni in questo pacchetto sono diverse volte più lente e, a meno che non si scriva un generatore di passphrase (o altro materiale relativo alla sicurezza), il pacchetto rand normale probabilmente sta bene.
Un'altra utile proprietà di plain rand è la possibilità di riprodurre i risultati riutilizzando un seed. –
Con go1 time.Nanoseconds() non sembra esistere. Puoi usare rand.Seed (time.Now(). UnixNano()) – Blacksad