Fill a buffer
buf := make([]byte, 32)
_, err := rand.Read(buf)
if err != nil { log.Fatal(err) }
fmt.Printf("%x\n", buf)
crypto/randCryptographically-secure random bytes. Reach for this for tokens, keys, nonces. NEVER math/rand for security.
buf := make([]byte, 32)
_, err := rand.Read(buf)
if err != nil { log.Fatal(err) }
fmt.Printf("%x\n", buf)
b := make([]byte, 32)
rand.Read(b)
token := base64.RawURLEncoding.EncodeToString(b)
max := big.NewInt(1_000_000)
n, _ := rand.Int(rand.Reader, max)
fmt.Println(n)
fmt.Println(rand.Text()) // "Hk8v9Q5xA3qUJ..." (26 chars default)
An io.Reader you can pass anywhere a random source is asked for — RSA key gen, TLS cert creation, etc.