go - ランダムな数字を生成する
簡易的にランダムな数字を生成する方法を調べた。
goでランダムな数字を生成する場合 math/rand が使用できる。
使用方法は至ってシンプル。
package main import ( "time" "math/rand" ) func main() { rand.Seed(time.Now().Unix()) num := rand.Intn(6) println(num) }
なお、math/rand は特定されると問題になるような値の生成には使わない方が良い(例: ユーザーIDやセッションIDなど)。 厳密にランダムな値を生成する場合は、crypt/rand を使う方が良い。
例ではSeedに time.Now().Unix()
を指定しているので、乱数を生成した付近の時間帯を総当たりでチェックされると、値を特定できてしまう可能性がある。