static <T, C> SimpleLoadBalancer<T> ofWeightedRandom(Iterable<? extends T> candidates,
                                                         ToIntFunction<? super T> weightFunction) {
        requireNonNull(candidates, "candidates");
        requireNonNull(weightFunction, "weightFunction");
        return new WeightedRandomLoadBalancer<>(candidates, weightFunction);
    }
Returns a {@link LoadBalancer} that selects a candidate using the weighted random distribution strategy.

@param weightFunction the weight function which returns the weight of the candidate.
core/src/main/java/com/linecorp/armeria/common/loadbalancer/LoadBalancer.java