VB.NET Code:
  1. Public Function Shuffle(Of T)(ByVal source As IEnumerable(Of T)) As IEnumerable(Of T)
  2.         Dim rng As New Random
  3.         Dim elements() As T = source.ToArray
  4.         Dim i, SwapIndex As Integer
  5.         Dim tmp As T
  6.         For i = elements.Length - 1 To 1 Step -1
  7.             SwapIndex = rng.Next(i + 1)
  8.             tmp = elements(i)
  9.             elements(i) = elements(SwapIndex)
  10.             elements(SwapIndex) = tmp
  11.         Next
  12.         Return elements
  13. End Function
  14.  
  15. Sub Test()
  16.         Dim ordered() As Integer = {1, 2, 3, 4, 5}
  17.         Dim shuffled = Shuffle(ordered)
  18.         For Each el In shuffled
  19.             Debug.Write(el.ToString + ";")
  20.         Next
  21. End Sub