static ISeq<DoubleGene> seq(
		final double min,
		final double max,
		final IntRange lengthRange
	) {
		final var random = random();
		final var length = random.nextInt(lengthRange.min(), lengthRange.max());

		return MSeq.<DoubleGene>ofLength(length)
			.fill(() -> new DoubleGene(random.nextDouble(min, max), min, max))
			.toISeq();
	}
Create a new random {@code DoubleGene}. It is guaranteed that the value
of the {@code DoubleGene} lies in the interval {@code [min, max)}.

@since 3.2

@param range the double range to use
@return a new {@code DoubleGene} with the given parameter
@throws NullPointerException if the given {@code range} is {@code null}
@throws IllegalArgumentException if {@code min} is not finite,
        or {@code max} is not finite, or {@code min}
        is greater than or equal to {@code max}
jenetics/src/main/java/io/jenetics/DoubleGene.java