He preparado este ejemplo, pero ya es un poco tarde y no lo retoco, necesitas un Listbox, según mis cáculos te pueda aguantar unas 30.000 palabras.
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
MisLetras:string;
nAncho:Integer;
nIni:Integer;
nPal:Integer;
Mots:String;
nIndice:Integer;
begin
MisLetras:='abcdefghijklmnñopqrstuvwxyz-,_';
nAncho:=10;
Randomize;
Mots:='';
For nIni:=1 to 5000 do
begin
for nPal:=1 to nAncho do
begin
nIndice:=Random(Length(MisLetras));
while nIndice = 0 do
begin
nIndice:=Random(Length(MisLetras));
end;
Mots:=Mots+MisLetras[nIndice];
end;
Listbox1.Items.Add(Mots);
Mots:='';
end;
ShowMessage(IntToStr(listbox1.items.count));
end;
Un Saludo.