package gopackagebase import ( crypto_rand "crypto/rand" "encoding/binary" "fmt" math_rand "math/rand" ) // InitRNG will grab some cryptographically secure bytes to use as the // seed for the non-crypto random number generator. Suggested on // StackOverflow to avoid time-based seeds: // https://stackoverflow.com/a/54491783 func InitRNG() error { var b [8]byte _, err := crypto_rand.Read(b[:]) if err != nil { err = fmt.Errorf("error seeding random number generator: %w", err) return err } math_rand.Seed(int64(binary.LittleEndian.Uint64(b[:]))) return nil }