#include <array.au3>
Dim $a[18] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1]
$fin = _Array_Random($a)
_ArrayDisplay($fin)
Func _Array_Random($Array)
Local $oD = ObjCreate('Scripting.Dictionary')
Local $i
For $i In $Array
If Not $oD.Exists($i) Then $oD.Add($i, 0);先去掉重复
Next
Local $outA = $oD.Keys()
$oD.RemoveAll;释放资源
$oD = ""
For $k = 1 To 7;据说"完美"的洗牌次数是7次
For $n = 0 To UBound($outA) - 1
_ArraySwap($outA[$i], $outA[Random(0, UBound($outA) - 1, 1)])
Next
Next
Return $outA
EndFunc ;==>_Array_Random
|