@Override
	public ISeq<Phenotype<G, C>> select(
		final Seq<Phenotype<G, C>> population,
		final int count,
		final Optimize opt
	) {
		requireNonNull(population, "Population");
		requireNonNull(opt, "Optimization");
		if (count < 0) {
			throw new IllegalArgumentException(format(
				"Selection count must be greater or equal then zero, but was %s.",
				count
			));
		}

		final MSeq<Phenotype<G, C>> selection = MSeq
			.ofLength(population.isEmpty() ? 0 : count);

		if (count > 0 && !population.isEmpty()) {
			final Seq<Phenotype<G, C>> pop = _sorted
				? population.asISeq().copy().sort(POPULATION_COMPARATOR)
				: population;


			final double[] prob = probabilities(pop, count, opt);
			assert pop.size() == prob.length
				: "Population size and probability length are not equal.";

			checkAndCorrect(prob);
			assert sum2one(prob) : "Probabilities doesn't sum to one.";

			incremental(prob);

			final var random = RandomRegistry.random();
			selection.fill(() -> pop.get(indexOf(prob, random.nextDouble())));
		}

		return selection.toISeq();
	}
Create a new selector with {@code sorted = false}.
jenetics/src/main/java/io/jenetics/ProbabilitySelector.java