private CandidateGenerator
    pickAnyGenerator(List<Class<? extends CandidateGenerator>> generatorClasses) {
    Class<? extends CandidateGenerator> randomClass =
      generatorClasses.get(ThreadLocalRandom.current().nextInt(candidateGenerators.size()));
    return candidateGenerators.get(randomClass);
  }
Select the candidate generator to use based on the cost of cost functions. The chance of
selecting a candidate generator is proportional to the share of cost of all cost functions
among all cost functions that benefit from it.
hbase-balancer/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java