Imports System
Imports System.Collections.Generic
Public Class Program
Public Shared Function selectReservoir(ByVal arr As Integer(), ByVal N As Integer) As IList(Of Integer)
Dim size As Integer = arr.Length
Dim reservoir As IList(Of Integer) = New List(Of Integer)()
Dim rand As Random = New Random()
Dim items As Integer = 0
While items < N
Dim i As Integer = rand.[Next](0, size)
Dim found As Boolean = False
For j As Integer = 0 To items - 1
If reservoir.Contains(arr(i)) Then
found = True
Exit For
End If
Next
If Not found Then
reservoir.Add(arr(i))
items += 1
End If
End While
Return reservoir
End Function
Public Shared Sub Main(ByVal args As String())
Dim arr As Integer() = New Integer() {4, 9, 14, 96, 13, 0, 3, 99, 19, 2, 80, 1, 7}
Dim N As Integer = 5
Dim reservoir As IList(Of Integer) = selectReservoir(arr, N)
Console.WriteLine(String.Join(" "c, reservoir))
End Sub
End Class
' run:
'
' 99 4 7 1 13
'