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 = rand.Next( size );
population.Add( tempPopulation[i] );
tempPopulation.RemoveAt( i );
size--;
}
}