## Randomly Shuffle

Category: Arrays

Date: 03-28-2012

'Shuffling is accomplished by cycling through the array, exchanging
'each element with a randomly selected element in the array.

'Primary Code:
'written as a function
Sub ShuffleArray(TheArray() As Long)
Dim L as Long, U as Long, i As Long, j as Long
Randomize Timer :  L = LBound(TheArray) : U = UBound(TheArray)
For i = L to U : j = Rnd(L,U) :  Swap TheArray(i), TheArray(j) : Next i
End Sub

'Compilable Example:
'this example walks through an array, putting its values in the caption of the dialog
#Compiler PBWin 9, PBWin 10
#Compile EXE
#Dim All
#Include "Win32API.inc"
Global hDlg As Dword

Function PBMain() As Long
Dialog New Pixels, 0, "Array Shuffle Test Code",300,300,240,200, %WS_OverlappedWindow To hDlg
Control Add Button, hDlg, 100, "Shuffle Array", 30,10,130,25
Dialog Show Modal hDlg Call DlgProc
End Function

CallBack Function DlgProc() As Long
If CB.Msg = %WM_Command AND CB.Ctl = 100 AND CB.Ctlmsg = %BN_Clicked Then
'create array
Dim MyArray(5) as Long, i as Long, temp\$
Array Assign MyArray() = 0,1,2,3,4,5  'sample data
'shuffle it
ShuffleArray MyArray()
temp\$ = "Array now contains: " + \$crlf + \$crlf + Str\$(myarray(0))
For i = 1 To 5 : temp\$ = temp\$ + " - " + Str\$(myarray(i)) : Next i
MsgBox temp\$
End If
End Function

Sub ShuffleArray(TheArray() As Long)
Dim L as Long, U as Long, i As Long, j as Long
Randomize Timer :  L = LBound(TheArray) : U = UBound(TheArray)
For i = L to U : j = Rnd(L,U) :  Swap TheArray(i), TheArray(j) : Next i
End Sub

'gbs_00069
'Date: 03-10-2012

created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm
{"ft_lang_label":"__label__en","ft_lang_prob":0.68844074,"math_prob":0.8393543,"size":1613,"snap":"2021-04-2021-17","text_gpt3_token_len":534,"char_repetition_ratio":0.14294593,"word_repetition_ratio":0.31460676,"special_character_ratio":0.31618103,"punctuation_ratio":0.1764706,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9703855,"pos_list":[0,1,2],"im_url_duplicate_count":[null,null,null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2021-01-16T00:10:00Z\",\"WARC-Record-ID\":\"<urn:uuid:65b2e01a-d55b-41bc-a045-749507721581>\",\"Content-Length\":\"7176\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:2af013f6-2be0-4e59-9232-39892e6f2a05>\",\"WARC-Concurrent-To\":\"<urn:uuid:0ff72e8f-9b0a-42af-a2fa-4b3880b3bcbf>\",\"WARC-IP-Address\":\"209.217.39.56\",\"WARC-Target-URI\":\"http://www.garybeene.com/power/code/gbsnippets_gbs_00069.htm\",\"WARC-Payload-Digest\":\"sha1:PA3FJURDRUDGIALRQWN6OARYTHVLNP2Q\",\"WARC-Block-Digest\":\"sha1:YVYOW324C3NO4M2A7BPN35BOAN6D4FXB\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2021/CC-MAIN-2021-04/CC-MAIN-2021-04_segments_1610703497681.4_warc_CC-MAIN-20210115224908-20210116014908-00669.warc.gz\"}"}