随机取listbox内容有关问题

随机取listbox内容问题
有listbox1和listbox2两个控件,随机取listbox1内容加到listbox2中,同时删除listbox1中的相应内容,randomize;
    i:=random(listbox1.items.count-1);
   ……
    listbox2.Items.add(listbox1.items[listbox1.itemindex]) ;
   ……
为什么listbox1中的最后一组数据总是取不到(除非将listbox1内容全部取到listbox2中),就是剩菜2行也随机不到它? 
------解决思路----------------------
 i:=random(listbox1.items.count+1);

------解决思路----------------------
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  if listbox1.items.count<1 then exit;
  i:=random(listbox1.items.count);
  listbox2.Items.add(listbox1.items[i]);
  listbox1.Items.Delete(i);
end;

------解决思路----------------------
引用:
random(n)不是随机0~n之间的整数么。。

对呀,所以楼主和一楼那样取随机数就不对了。
------解决思路----------------------
如果:
var x,n: integer;
x := random(n);
则:
 0 <= x < n 
delphi的帮助里是这样描述的:

Description
In Delphi code, Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range
0 <= X < 1.