#include <GuiConstantsEx.au3>
#include <Array.au3>
GUICreate('Окно', 360, 210)
$sTring = 'Первая строка' & @CRLF & _
'Вторая строка' & @CRLF & _
'Третья строка' & @CRLF & _
'Четвертая строка' & @CRLF & _
'Пятая строка' & @CRLF & _
'Шестая строка'
$Input1 = GUICtrlCreateEdit($sTring, 20, 20, 260, 70, BitOR(0x0004, 0x0040))
$Input2 = GUICtrlCreateEdit('', 20, 120, 260, 70, BitOR(0x0004, 0x0040))
$b_Enter = GUICtrlCreateButton('Кнопка 1', 290, 20, 60, 20)
GUISetState()
While 1
Switch GUIGetMsg()
Case $b_Enter
_S()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _S()
$aString = StringSplit(GUICtrlRead($Input1), @CRLF, 1)
_ArrayDelete($aString, 0)
_ArrayShuffleMultiDim($aString)
GUICtrlSetData($Input2, _ArrayToString($aString, '/'))
EndFunc ;==>_S
Func _ArrayShuffleMultiDim(ByRef $aArray)
If IsArray($aArray) = 0 Then Return SetError(1)
Local $iDim = UBound($aArray, 0) ; Get No dimensions
If $iDim > 11 Then Return SetError(2)
Local $a[$iDim + 1], $aiBound[12] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
For $i = 1 To $iDim ; For each dimensionn
$aiBound[$i] = UBound($aArray, $i) - 1 ; Get dimension size
Next
For $i = 0 To $aiBound[1]
For $j = 0 To $aiBound[2]
For $k = 0 To $aiBound[3]
For $l = 0 To $aiBound[4]
For $m = 0 To $aiBound[5]
For $n = 0 To $aiBound[6]
For $o = 0 To $aiBound[7]
For $p = 0 To $aiBound[8]
For $q = 0 To $aiBound[9]
For $r = 0 To $aiBound[10]
For $s = 0 To $aiBound[11]
For $z = 1 To $iDim
; Get random values for each dimension.
$a[$z] = Random(0, $aiBound[$z], 1)
Next
_Swap($aArray, $iDim, $a, $i, $j, $k, $l, $m, $n, $o, $p, $q, $r, $s)
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
EndFunc ;==>_ArrayShuffleMultiDim
Func _Swap(ByRef $aArray, $iDim, $a, $i, $j, $k, $l, $m, $n, $o, $p, $q, $r, $s)
Local $vTemp
Switch $iDim
Case 1
$vTemp = $aArray[$i]
$aArray[$i] = $aArray[$a[1]]
$aArray[$a[1]] = $vTemp
Case 2
$vTemp = $aArray[$i][$j]
$aArray[$i][$j] = $aArray[$a[1]][$a[2]]
$aArray[$a[1]][$a[2]] = $vTemp
Case 3
$vTemp = $aArray[$i][$j][$k]
$aArray[$i][$j][$k] = $aArray[$a[1]][$a[2]][$a[3]]
$aArray[$a[1]][$a[2]][$a[3]] = $vTemp
Case 4
$vTemp = $aArray[$i][$j][$k][$l]
$aArray[$i][$j][$k][$l] = $aArray[$a[1]][$a[2]][$a[3]][$a[4]]
$aArray[$a[1]][$a[2]][$a[3]][$a[4]] = $vTemp
Case 5
$vTemp = $aArray[$i][$j][$k][$l][$m]
$aArray[$i][$j][$k][$l][$m] = $aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]]
$aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]] = $vTemp
Case 6
$vTemp = $aArray[$i][$j][$k][$l][$m][$n]
$aArray[$i][$j][$k][$l][$m][$n] = $aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]]
$aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]] = $vTemp
Case 7
$vTemp = $aArray[$i][$j][$k][$l][$m][$n][$o]
$aArray[$i][$j][$k][$l][$m][$n][$o] = $aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]]
$aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]] = $vTemp
Case 8
$vTemp = $aArray[$i][$j][$k][$l][$m][$n][$o][$p]
$aArray[$i][$j][$k][$l][$m][$n][$o][$p] = $aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]][$a[8]]
$aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]][$a[8]] = $vTemp
Case 9
$vTemp = $aArray[$i][$j][$k][$l][$m][$n][$o][$p][$q]
$aArray[$i][$j][$k][$l][$m][$n][$o][$p][$q] = $aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]][$a[8]][$a[9]]
$aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]][$a[8]][$a[9]] = $vTemp
Case 10
$vTemp = $aArray[$i][$j][$k][$l][$m][$n][$o][$p][$q][$r]
$aArray[$i][$j][$k][$l][$m][$n][$o][$p][$q][$r] = $aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]][$a[8]][$a[9]][$a[10]]
$aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]][$a[8]][$a[9]][$a[10]] = $vTemp
Case 11
$vTemp = $aArray[$i][$j][$k][$l][$m][$n][$o][$p][$q][$r][$s]
$aArray[$i][$j][$k][$l][$m][$n][$o][$p][$q][$r][$s] = $aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]][$a[8]][$a[9]][$a[10]][$a[11]]
$aArray[$a[1]][$a[2]][$a[3]][$a[4]][$a[5]][$a[6]][$a[7]][$a[8]][$a[9]][$a[10]][$a[11]] = $vTemp
EndSwitch
EndFunc ;==>_Swap