Eine einfache, aber sehr unsaubere Methode wäre diese hier:
Du nimmst einen String (var ziehung:String), der zu Anfang leer ist.
Dann änderst du nach jeder erfolgreichen Ziehung den String wie folgt:
ziehung := ziehung + ',' + IntToStr(gezogene_zahl) + ',';
Jetzt musst du nur noch vor jeder Ziehung schauen, ob die zu ziehene Zahl im String drin ist, und wenn ja, neu ziehen.
Delphi-Quellcode:
neu_ziehen:
gezogene_zahl := Random(49) + 1;
if pos(','+IntToStr(gezogene_zahl)+',' , ziehung) > 0 then goto neu_ziehen;
PS: Vergiss nicht am Anfang den Aufruf von Randomize