# shuffle array

i have an array of ten digits
digitarray(10)
and i want to shuffle it
any ideas how its done?
###### Who is Participating?

Commented:
here is some code :

<%@ Language=VBScript %>
<%Option Explicit%>

<%
Dim digitArray
Dim i

digitArray = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")

' initial vector
For i = 0 To UBound(digitArray)
Response.Write "digitArray[" & i & "] = " & digitArray(i) & "<br>"
Next

' shuffle
Dim n, k
Dim rnd1, rnd2
Dim minValue
Dim maxValue
Dim buf

minValue = 1
maxValue = 9
n = 10

' initialize generator
Randomize

For k = 1 To n

rnd1 = CInt((maxValue * Rnd) + minValue)
rnd2 = CInt((maxValue * Rnd) + minValue)

If rnd1 <> rnd2 Then
buf = digitArray(rnd1-1)
digitArray(rnd1-1) = digitArray(rnd2-1)
digitArray(rnd2-1) = buf
Else
k = k - 1
End If
Next

' shuffle vector
For i = 0 To UBound(digitArray)
Response.Write "digitArray[" & i & "] = " & digitArray(i) & "<br>"
Next

%>

hope this will help

rgds
0

Commented:
Define shuffle

regards,
CJ
0

Author Commented:
currently
digitarray(10)=("1", "2", ....., "10")
i want it to become something like
digitarray(10)=("8", "4", ....., "7")
like shuffling a deck of cards

0

Commented:
heres an example of how to remove all null values from an array and condense it down,

<%

Function cleanArray(tarr)
arr = tarr
FOR i = 0 TO UBOUND(arr)
IF(arr(i) = "" AND i < UBOUND(arr))THEN
arr(i) = arr(i + 1)
arr(i + 1) = ""
END IF
NEXT
count = 0
FOR i = 0 TO UBOUND(arr)
IF(arr(i) <> "")THEN
count = count + 1
END IF
NEXT
REDIM PRESERVE arr(count)
cleanArray = arr
End Function

dim arra(6)
arra(0) = "Hello"
arra(1) = "Hi"
arra(2) = "asp"
arra(3) = ""
arra(4) = "weeeee"
arra(5) = ""

'narra will now be a clean version of arra
narra = cleanArray(arra)

FOR i = 0 TO UBOUND(narra)
Response.Write(narra(i) & "<BR>")
NEXT

%>
0

Commented:
an ideea : generate 2 random numbers and switch values in the array .. if you repeat this process for <<n>> times will will get what you want ..

rgds
0

Commented:
providing you dont reuse random numbers!, quite possible
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.