package com.baeldung.probability; import io.vavr.Lazy; import java.util.SplittableRandom; import java.util.function.Supplier; public class RandomInvoker { private final Lazy random = Lazy.of(SplittableRandom::new); public T withProbability(Supplier supplier1, Supplier supplier2, int probability) { SplittableRandom random = this.random.get(); if (random.nextInt(1, 101) <= probability) { return supplier1.get(); } else { return supplier2.get(); } } }