go1.20.5
GoThrough

rand.A

const A = 48271

rand.Q

const Q = 44488

rand.R

const R = 3399

rand.Source

// A Source represents a source of uniformly-distributed // pseudo-random int64 values in the range [0, 1<<63). // // A Source is not safe for concurrent use by multiple goroutines. type Source interface { Int63() int64 Seed(seed int64) }

rand.Source64

// A Source64 is a Source that can also generate // uniformly-distributed pseudo-random uint64 values in // the range [0, 1<<64) directly. // If a Rand r's underlying Source s implements Source64, // then r.Uint64 returns the result of one call to s.Uint64 // instead of making two calls to s.Int63. type Source64 interface { Source Uint64() uint64 }

rand.ExpFloat64

// ExpFloat64 returns an exponentially distributed float64 in the range // (0, +math.MaxFloat64] with an exponential distribution whose rate parameter // (lambda) is 1 and whose mean is 1/lambda (1) from the default Source. // To produce a distribution with a different rate parameter, // callers can adjust the output using: // // sample = ExpFloat64() / desiredRateParameter func ExpFloat64() float64

rand.Float32

// Float32 returns, as a float32, a pseudo-random number in the half-open interval [0.0,1.0) // from the default Source. func Float32() float32

rand.Float64

// Float64 returns, as a float64, a pseudo-random number in the half-open interval [0.0,1.0) // from the default Source. func Float64() float64

rand.Int

// Int returns a non-negative pseudo-random int from the default Source. func Int() int

rand.Int31

// Int31 returns a non-negative pseudo-random 31-bit integer as an int32 // from the default Source. func Int31() int32

rand.Int31n

// Int31n returns, as an int32, a non-negative pseudo-random number in the half-open interval [0,n) // from the default Source. // It panics if n <= 0. func Int31n(n int32) int32

rand.Int63

// Int63 returns a non-negative pseudo-random 63-bit integer as an int64 // from the default Source. func Int63() int64

rand.Int63n

// Int63n returns, as an int64, a non-negative pseudo-random number in the half-open interval [0,n) // from the default Source. // It panics if n <= 0. func Int63n(n int64) int64

rand.Intn

// Intn returns, as an int, a non-negative pseudo-random number in the half-open interval [0,n) // from the default Source. // It panics if n <= 0. func Intn(n int) int

rand.New

// New returns a new Rand that uses random values from src // to generate other random values. func New(src Source) *Rand

rand.NewSource

// NewSource returns a new pseudo-random Source seeded with the given value. // Unlike the default Source used by top-level functions, this source is not // safe for concurrent use by multiple goroutines. // The returned Source implements Source64. func NewSource(seed int64) Source

rand.NewZipf

// NewZipf returns a Zipf variate generator. // The generator generates values k ∈ [0, imax] // such that P(k) is proportional to (v + k) ** (-s). // Requirements: s > 1 and v >= 1. func NewZipf(r *Rand, s float64, v float64, imax uint64) *Zipf

rand.NormFloat64

// NormFloat64 returns a normally distributed float64 in the range // [-math.MaxFloat64, +math.MaxFloat64] with // standard normal distribution (mean = 0, stddev = 1) // from the default Source. // To produce a different normal distribution, callers can // adjust the output using: // // sample = NormFloat64() * desiredStdDev + desiredMean func NormFloat64() float64

rand.Perm

// Perm returns, as a slice of n ints, a pseudo-random permutation of the integers // in the half-open interval [0,n) from the default Source. func Perm(n int) []int

rand.Read

// Read generates len(p) random bytes from the default Source and // writes them into p. It always returns len(p) and a nil error. // Read, unlike the Rand.Read method, is safe for concurrent use. // // Deprecated: For almost all use cases, crypto/rand.Read is more appropriate. func Read(p []byte) (n int, err error)

rand.Seed

// Seed uses the provided seed value to initialize the default Source to a // deterministic state. Seed values that have the same remainder when // divided by 2³¹-1 generate the same pseudo-random sequence. // Seed, unlike the Rand.Seed method, is safe for concurrent use. // // If Seed is not called, the generator is seeded randomly at program startup. // // Prior to Go 1.20, the generator was seeded like Seed(1) at program startup. // To force the old behavior, call Seed(1) at program startup. // Alternately, set GODEBUG=randautoseed=0 in the environment // before making any calls to functions in this package. // // Deprecated: Programs that call Seed and then expect a specific sequence // of results from the global random source (using functions such as Int) // can be broken when a dependency changes how much it consumes // from the global random source. To avoid such breakages, programs // that need a specific result sequence should use NewRand(NewSource(seed)) // to obtain a random generator that other packages cannot access. func Seed(seed int64)

rand.Shuffle

// Shuffle pseudo-randomizes the order of elements using the default Source. // n is the number of elements. Shuffle panics if n < 0. // swap swaps the elements with indexes i and j. func Shuffle(n int, swap func(i, j int))

rand.Uint32

// Uint32 returns a pseudo-random 32-bit value as a uint32 // from the default Source. func Uint32() uint32

rand.Uint64

// Uint64 returns a pseudo-random 64-bit value as a uint64 // from the default Source. func Uint64() uint64