Hallo zusammen,
ich würde gerne eine Stringlist zufällig durchmischen. Soweit kein Problem, gibt es bereits:
Code:
procedure Shuffle(List: TStrings);
var
i: Integer;
begin
Randomize;
List.BeginUpdate;
try
for i := 0 to Pred(List.Count) do
List.Exchange(i, Random(List.Count));
finally
List.EndUpdate;
end;
end;
Quelle:
http://www.delphipraxis.net/110463-s...g-mischen.html
Mein Problem ist allerdings das ich die Liste nicht von vorne bis hinten auf den Kopf stellen möchte sondern nur leicht verändern will. Konkret geht es um eine Liste mit 1000 Einträgen.
Wie die Begrenzung genau aussehen soll lasse ich bewusst offen da ich nicht weiß welche sich am einfachsten umsetzen lässt. Mir würde z.B. einfallen das die Einträge sich um maximal 5 Plätze verschieben lassen oder in ihrer 10 Einheit bleiben (z.B. 88 darf nur von 81-90 verschoben werden).
Kann mir jemand weiterhelfen wie ich das realisieren kann? Random lässt sich ja nicht derart einschränken.
PS: Die Geschwindigkeit spielt keine Rolle.
Vielen Dank,
LG
Christian