• Ich hoffe mal, das gibt's nicht schon, hier die Funktion _ArrayShuffle.

    Funktionsweise:
    Es wird ein Array übergeben, was mit dem Fisher-Yates-Algorithmus gemischt wird.

    UDF
    [autoit]

    ;===============================================================================
    ;
    ; Function Name: _ArrayShuffle($aArray)
    ; Description:: Shuffles an array with the Fisher-Yates shuffle
    ; Parameter(s): $aArray : The Array to shuffle
    ; Return Value(s): Sucess: Returns True
    ; Failure: Doesn't return anything
    ; Author(s): L3viathan2142 (l3viathan2142.de)
    ;
    ;===============================================================================
    ;

    [/autoit] [autoit][/autoit] [autoit]

    Func _ArrayShuffle(ByRef $aArray)
    $n=UBound($aArray)-1
    while $n > 1
    $k = random(0,$n-1,1)
    $tmp = $aArray[$n];
    $aArray[$n] = $aArray[$k];
    $aArray[$k] = $tmp;
    $n-=1
    WEnd
    Return True
    EndFunc

    [/autoit]
    Beispiel
    [autoit]

    #include <Array.au3>
    #include "_ArrayShuffle.au3"
    Dim $test[19] = [4123,51235,423,432,5,2354,234,234523,432,43,4,23,65,546,547,42,3423,4235,4325]
    _ArrayDisplay($test)
    _ArrayShuffle($test)
    _ArrayDisplay($test)

    [/autoit]

    Es geht natürlich mit allen Datentypen, nicht nur mit Integern. Die UDF funktioniert nur mit 1D-Arrays.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Ich war mal so frei (musste eh die "Get Source from ClipBoard"-Funktion für DescribeIt testen)

    [autoit]

    ; #FUNCTION# ======================================================================================
    ; Name...........: _ArrayShuffle()
    ; Description ...: Shuffles an array with the Fisher-Yates shuffle
    ; Syntax.........: _ArrayShuffle(ByRef $aArray)
    ; Parameters ....: ByRef $aArray - Array to shuffle
    ; Return values .: Success - Returns True
    ; Failure - Returns Nothing
    ; Author ........: L3viathan2142 (l3viathan2142.de)
    ; Link ..........: https://autoit.de/index.php?page=Thread&threadID=18248
    ; Example .......: No
    ; =================================================================================================

    [/autoit]