Я обычно использую:
var list = new List<T> ();
fillList (list);
var randomizedList = new List<T> ();
var rnd = new Random ();
while (list.Count != 0)
{
var index = rnd.Next (0, list.Count);
randomizedList.Add (list [index]);
list.RemoveAt (index);
}
Scott Hanselmann вел блог экстенсивно о его опыте в изучении WPF путем создания его приложения Windows 'BabySmash'. Весь исходный код находится на codeplex, и у него есть много статей блога, описывающих его успех.
Хорошо, с точки зрения чтения материала, это - выбор книг там: Windows Presentation Foundation Unleashed.
Для блогов существует много блогов и статей о WindowsClient.net, и существует превосходный блог все о привязке данных в WPF Beatriz Costa. Также смотрите на LearnWPF.com и Спросите Доктора WPF.
У Sacha Barber есть большой ряд статей о WPF для Новичков в Codeproject, который можно проверить.
Я купил бы книгу - книга WPF Adam Nathan хороша.
http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917
Вот некоторые, "Как Делают меня" видео для запущения Вас:
Программирование WPF Chris Sells и Ian Griffiths является отличным способом изучить WPF. Пятизвездочный оцененный на Amazon с 50 + обзоры. http://www.amazon.com/Programming-WPF-Chris-Sells/dp/0596510373
Взгляните на Экскурсию по WPF Josh Smith. Мне также действительно нравится книга Nathan Adam Развязанная Презентация WPF.
Здесь существуют некоторые руководства по началу работы WPF: http://msdn.microsoft.com/en-us/library/ms742119.aspx