>>701
ランダム並べ替えが目的なら、昔からある定番アルゴリズムを使えばよし。
Sortメソッドは、一定のルールに基づいて並べ替えを行うメソッドなので、ランダム並べ替えに使うのは良くない。コードを読む人が混乱する。

static void Shuffle<T>(ref IList<T> list)
{
Random r = new Random();

for (int i = 1; i < list.Count; i++)
{
int j = r.Next(list.Count);
T tmp = list[ i ];
list[ i ] = list[ j ];
list[ j ] = tmp;
}
}