using static System.Console;
using System.Collections.Generic;
using System.Linq;
public static class Sorteio {
public static void Main() {
var lista = new List<string>() { "Alaor", "Joseval", "Salustiano", "Gomide", "Castro" };
foreach (string value in lista.Shuffle()) {
WriteLine(value);
}
WriteLine("////////");
foreach (string value in lista.Shuffle().Take(3)) {
WriteLine(value);
}
}
}
namespace System.Collections.Generic {
public static class IEnumerableExt {
static Random r = new Random(DateTime.Now.Millisecond);
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> list) {
T[] array = list.ToArray();
for (int i = array.Length - 1; i > 0; i--) {
int j = r.Next(i + 1);
T tmp = array[j];
array[j] = array[i];
array[i] = tmp;
}
foreach(var item in array) {
yield return item;
}
}
}
}
//https://pt.stackoverflow.com/q/17783/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgc3RhdGljIGNsYXNzIFNvcnRlaW8gewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKSB7CgkJdmFyIGxpc3RhID0gbmV3IExpc3Q8c3RyaW5nPigpIHsgIkFsYW9yIiwgIkpvc2V2YWwiLCAiU2FsdXN0aWFubyIsICJHb21pZGUiLCAiQ2FzdHJvIiB9OwoJCWZvcmVhY2ggKHN0cmluZyB2YWx1ZSBpbiBsaXN0YS5TaHVmZmxlKCkpIHsKCQkJV3JpdGVMaW5lKHZhbHVlKTsKCQl9CgkJV3JpdGVMaW5lKCIvLy8vLy8vLyIpOwoJCWZvcmVhY2ggKHN0cmluZyB2YWx1ZSBpbiBsaXN0YS5TaHVmZmxlKCkuVGFrZSgzKSkgewoJCQlXcml0ZUxpbmUodmFsdWUpOwoJCX0KCX0KfQoKbmFtZXNwYWNlIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljIHsKCXB1YmxpYyBzdGF0aWMgY2xhc3MgSUVudW1lcmFibGVFeHQgewoJCXN0YXRpYyBSYW5kb20gciA9IG5ldyBSYW5kb20oRGF0ZVRpbWUuTm93Lk1pbGxpc2Vjb25kKTsKCQkKCQlwdWJsaWMgc3RhdGljIElFbnVtZXJhYmxlPFQ+IFNodWZmbGU8VD4odGhpcyBJRW51bWVyYWJsZTxUPiBsaXN0KSB7CgkJCVRbXSBhcnJheSA9IGxpc3QuVG9BcnJheSgpOwoJCQlmb3IgKGludCBpID0gYXJyYXkuTGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkgewoJCQkJaW50IGogPSByLk5leHQoaSArIDEpOwoJCQkJVCB0bXAgPSBhcnJheVtqXTsKCQkJCWFycmF5W2pdID0gYXJyYXlbaV07CgkJCQlhcnJheVtpXSA9IHRtcDsKCQkJfQoJCQlmb3JlYWNoKHZhciBpdGVtIGluIGFycmF5KSB7CgkJCQl5aWVsZCByZXR1cm4gaXRlbTsKCQkJfQoJCX0KCX0KfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvMTc3ODMvMTAx