public static Balloon getRandomBalloon(double minRadius, double maxRadius,
                                           double minFullness, double maxFullness) {
        if (minRadius > maxRadius) {
            throw new IllegalArgumentException(
                    "minRadius must be lesser than maxRadius");
        } else if (minFullness > maxFullness) {
            throw new IllegalArgumentException(
                    "minFullness must be lesser than maxFullness");
        } else if (minRadius <= 0) {
            throw new IllegalArgumentException(
                    "minRadius must be positive");
        } else if (minFullness < 0 || minFullness > 1) {
            throw new IllegalArgumentException(
                    "minFullness must be 0..1");
        } else if (maxFullness < 0 || maxFullness > 1) {
            throw new IllegalArgumentException(
                    "maxFullness must be 0..1");
        } else {
            //everything is ok
        }

        Random gen = new Random();
        double radius = minRadius + gen.nextDouble() * (maxRadius - minRadius);
        double fullness = minFullness + gen.nextDouble() % (maxFullness - minFullness);
        Balloon result = new Balloon(radius, fullness);
        return result;
    }