public void Shuffle()
{
// current population size
int size = population.Count;
// create temporary copy of the population
List<IChromosome> tempPopulation = population.GetRange(0, size);
// clear current population and refill it randomly
population.Clear();
while (size > 0)
{
int i = Generator.Random.Next(size);
population.Add(tempPopulation[i]);
tempPopulation.RemoveAt(i);
size--;
}
}