Golang: Random Number

By Xah Lee. Date: . Last updated: .

Random Integer

import "math/rand"

rand.Intn(n)
Return a pseudo random from 0 to n-1, inclusive.

The result is always the same each time you run the program.

package main

import "fmt"
import "math/rand"

func main() {
	for i := 0; i < 30; i++ {
		fmt.Printf("%v", rand.Intn(4))
	}
}

// 133312100023210231123202333023

Set Seed for Random Number

If you want different result, set a seed.

rand.Seed(n)

package main

import "fmt"
import "math/rand"

func main() {
	rand.Seed(21832)
	for i := 0; i < 30; i++ {
		fmt.Printf("%v", rand.Intn(4))
	}
}

// 003023021103222332330200312311

Random Real Number

For random real number and others, see

https://golang.org/pkg/math/rand/

Cryptography Random Number

For random number that's less predictable, use the package “crypto/rand”

https://golang.org/pkg/crypto/rand/

Reference

https://golang.org/pkg/math/rand/