伪随机数生成
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)
}