code: func (s *RandomStrategy) Apply(nodes []Node) Node {
  	s.once.Do(func() {
  		seed := s.Seed
  		if seed == 0 {
  			seed = time.Now().UnixNano()
  		}
  		s.rand = rand.New(rand.NewSource(seed))
  	})
  	if len(nodes) == 0 {
  		return Node{}
  	}
  
  	s.mux.Lock()
  	r := s.rand.Int()
  	s.mux.Unlock()
  
  	return nodes[r%len(nodes)]
  }
docs: // Apply applies the random strategy for the nodes.