Проблема в том, что метод расширения Shuffle
в связанном вопросе каждый раз создает новый объект Random
.Поскольку конструктор по умолчанию использует Environment.TickCount
для заполнения генератора случайных чисел, и все это происходит очень быстро, все списки получают одинаковое случайное начальное число.
Вам необходимо создать собственный экземпляр Random
и передатьэто к перегрузке Shuffle
:
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source, Random rng)
от этот ответ .
Тогда ваш код будет:
Random myRandom = new Random();
SetOfSets.Select(set => set.Shuffle(myRandom));