            : base(evaluation, stopCondition ?? new IterationsStopCondition(evaluation.dMaxValue, 1))
        {
            optimizedSolution = solution;
            if (seed == null)
            {
                shuffler = new Shuffler();
                rnd = new Random();
            }
            else
            {
                shuffler = new Shuffler(seed.Value);