http://www.cnblogs.com/28088191/archive/2008/12/25/1362519.html
下面是一个在14个数据产生10个不重复的随机数
-----------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..14]of integer;//14个数
b:array[1..10]of integer;//结果
c:array[1..14]of boolean;//标志,默认false
i,temp:integer;
begin
for i:=1 to 14 DO
begin
a[i]:=i;
c[i]:=false;
end;
for i:=1 to 10 do
begin
temp:=Random(14)+1;
while c[temp]=true do
begin
temp:=Random(14)+1;
end;
b[i]:=a[temp];
c[temp]:=true;
end;
ListBox1.Clear;
for i:=1 to 10 do
ListBox1.Items.Add(IntToStr(b[i]));
end;
procedure TForm1.Button1Click(Sender: TObject);
var rarr:array[1..14]of integer;//结果
farr:array[1..14]of boolean;//标志,默认false
i,k:integer;
begin
for k:=1 to 14 DO
begin
farr[k]:=false;
end;
for k:=1 to 14 do
begin
i:=Random(14)+1;
while farr[i]=true do
begin
i:=Random(14)+1;
end;
rarr[k]:=i;
farr[i]:=true;
end;
ListBox1.Clear;
for i:=1 to 14 do
ListBox1.Items.Add(IntToStr(rarr[i]));
end;