package slot_random import ( "math/rand" "sync" ) type RandItem struct { Random *rand.Rand imu sync.Mutex fmu sync.Mutex } func (s *RandItem) Intn(n int) int { s.imu.Lock() defer s.imu.Unlock() return s.Random.Intn(n) } func (s *RandItem) Float64() float64 { s.fmu.Lock() defer s.fmu.Unlock() return s.Random.Float64() }