伪随机数生成

math/rand 实现

package main
 
import (
    "fmt"
    "time"
    "math/rand"
)
func main() {
// 用 Unix时间生成纳秒时间戳
// 高并发情况下,可能会生成同样的时间戳
tineNano := time.Now().UnixNano()
// 使用时间戳生成 seed
rand.Seed(tineNano)
// 生成随机数
fmt.Println(rand.Intn(100))
}

真随机数生成

crypto/rand 实现

package main
 
import (
    "fmt"
    "crypto/rand"
)
 
func main() {
    randomNum := rand.Int(rand.Reader, big.NewInt(100))
    fmt.Println(randomNum)
}