var rng … // Int returns a non-negative pseudo-random int. func Int() int { … } // Intn generates an integer in range [0,max). // By design this should panic if input is invalid, <= 0. func Intn(max int) int { … } // IntnRange generates an integer in range [min,max). // By design this should panic if input is invalid, <= 0. func IntnRange(min, max int) int { … } // IntnRange generates an int64 integer in range [min,max). // By design this should panic if input is invalid, <= 0. func Int63nRange(min, max int64) int64 { … } // Seed seeds the rng with the provided seed. func Seed(seed int64) { … } // Perm returns, as a slice of n ints, a pseudo-random permutation of the integers [0,n) // from the default Source. func Perm(n int) []int { … } const alphanums … const alphanumsIdxBits … const alphanumsIdxMask … const maxAlphanumsPerInt … // String generates a random alphanumeric string, without vowels, which is n // characters long. This will panic if n is less than zero. // How the random string is created: // - we generate random int63's // - from each int63, we are extracting multiple random letters by bit-shifting and masking // - if some index is out of range of alphanums we neglect it (unlikely to happen multiple times in a row) func String(n int) string { … } // SafeEncodeString encodes s using the same characters as rand.String. This reduces the chances of bad words and // ensures that strings generated from hash functions appear consistent throughout the API. func SafeEncodeString(s string) string { … }