@Nonnull
    static VariableAmount baseWithOptionalVariance(double base, @Nonnull VariableAmount variance, double chance) {
        return new OptionalAmount(base, chance, baseWithVariance(base, variance));
    }
Creates a new variable about which has a base and a chance to apply a
random variance. The chance should be between zero and one with a chance
of one signifying that the variance will always be applied. If the chance
succeeds then the final amount will be the base amount plus or minus a
random amount between zero (inclusive) and the variance (exclusive). If
the chance fails then the final amount will just be the base value.

@param base The base value
@param variance The variance
@param chance The chance to apply the variance
@return A variable amount representation
helper/src/main/java/me/lucko/helper/random/VariableAmount.java