Jag jobbar ju inte med Ruby men i de flesta programspråk jag kört genom åren så måste man alltid själv definiera ett "frö", men som du visade så var det tydligen redan gjort i den funktion du använde.
Exempelvis skulle koden:
Kod:
numbers = new List<int>() { 23, 17, 13, 44, 51, 68, 37, 58, 9 };
var rnd = new Random();
numbers = numbers.OrderBy(x => rnd.Next()).ToList();
Ge samma resultat om man startar om programmet och kör igen. Det är det normala i de flesta pogramspråk.
I NET kan man lägga tilll följande kodelement för att själv styra fröet som styr slumpgenereringen. Static framför seed-variabeln gör att variabeln håller kvar sitt värde om den ligger som klassvariabel i en slumptalsklass, trots att man anropar slumpmetoden som en staticmetod, vilken var en liten behändig egenskap i sig.
Kod:
static int seed = Environment.TickCount;
var rnd = new Random(seed++);
Men däremot så var funktionen felaktig utifrån kravet, det gör inte vad kravställaren vill. Dvs väljer ett slumpmässigt element från en angiven lista där varje element är en int. Din lista visade bara siffrorna 1-5. utan någon initiering från användaren med valfria värden.
Listan skulle likväl kunnat innehålla följande värden:
Kod:
static int seed = Environment.TickCount;
var rnd = new Random(seed++);
numbers = new List<int>() { 23, 17, 13, 44, 51, 68, 37, 58, 9 };
numbers = numbers.OrderBy(x => rnd.Next()).ToList();
Nog om slumptal. Visa gärna hur du initierar med valfria heltalsvärden i en array i stället.