Ich gehe mal davon aus, daß wir 12 Namen haben, die in labelededit1..12 stehen. Dann sähe eine Lösung (analog des Vorschlags von Z4ppy) so aus:
Delphi-Quellcode:
var
list: TStringList;
I, N: Integer;
begin
list := TStringList.Create;
try
{ Liste mit den Einträgen füllen }
list.Add(labelededit1.Text);
...
list.Add(labelededit12.Text);
N := list.Count;
for I:=1 to N do begin
if list.Count < 2 then
N := Random(list.Count)
else
N := 0;
memo1.Lines.Add(IntToStr(I) + ':' + list[N]);
list.Delete(N);
end;
Assert(list.Count = 0, 'Liste nicht leer!');
finally
list.Free;
end;
end;