这才是机会均等洗牌法:
Dim cnt As Integer = DataTables("订单").DataRows.Count
Dim ids1 As New List(of Integer)
Dim ids2 As New List(of Integer)
For i As Integer = 0 To cnt -1
ids1.add(i)
Next
For i As Integer = 0 To cnt - 1
ids2.Add(ids1(rand.Next(0,ids1.count)))
Next
Tables("订单").StopRedraw()
DataTables("订单").ReplaceFor("选择",False)
For i As Integer = 0 To 100 - 1 '100为要抽取的行数
DataTables("订单").DataRows(ids2(i))("选择") = True
Next
Tables("订单").Filter = "[选择] = True"
Tables("订单").ResumeRedraw()
[此贴子已经被作者于2015/5/15 10:40:41编辑过]