Below is the code for a bowling program that I have developed for our bowling club.
The idea is you enter a members name which appears in the members list, clicking on a name in the members list puts that name in the first available Mat if no mats are available the name goes in to the current player list. When a game has finished you click Change players button and the players are switched with the ones in the current player list. You can add / delete members, Add / Remove Mat3 and 4 and remove a players name .
I have posted a list of names which you can copy / paste in to the collection property of lstMembers for testing. I did zip it but it's just over the allowance for posting.
It works and does all I require of it, it would be nice to get feedback on how I've coded it.

Code:
Option Explicit On

Public Class Form1
    Private Const APP_NAME As String = "SaveRestoreListBox"
    Private Const SECTION_NAME As String = "Items"
    Dim clearMat4 = False, clearMat3 = False
    ' Load saved items from the Registry.
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal _
    e As System.EventArgs) Handles MyBase.Load
        lstHidden.Items.Clear()

        Dim i As Integer = 0
        Do
            Dim new_value As String = GetSetting(APP_NAME,
                    SECTION_NAME, "Item" & i.ToString())
            If new_value.Length = 0 Then Exit Do

            lstHidden.Items.Add(new_value)
            lstMembers.Items.Add(new_value)
            i += 1
        Loop
    End Sub
    ' Save the current items.
    Private Sub Form1_Closing(ByVal sender As Object, ByVal e _
    As System.ComponentModel.CancelEventArgs) Handles _
    MyBase.Closing
        ' Delete existing items.
        ' Catch errors in case the section doesn't exist.
        Try
            DeleteSetting(APP_NAME, SECTION_NAME)
        Catch ex As Exception
        End Try

        ' Save the items.
        For i As Integer = 0 To lstHidden.Items.Count - 1
            SaveSetting(APP_NAME, SECTION_NAME, "Item" &
            i.ToString(), lstHidden.Items(i).ToString())
        Next i
    End Sub
    Private Sub BtnMat1_Click(sender As Object, e As EventArgs) Handles BtnMat1.Click
        'switch 4 players from current list to mat 1 and place the players from mat 1 back to current player list
        Static num = 3
        For clearLb = 0 To 3
            lstNames.Items.Add(LstMat1.Items(num))
            LstMat1.Items.Remove(LstMat1.Items(num))
            num = num - 1
            If num = -1 Then
                For fillListbox = 0 To 3
                    LstMat1.Items.Insert(0, lstNames.Items(0))
                    lstNames.Items.Remove(lstNames.Items(0))
                    num = 3
                Next
            End If
        Next
    End Sub

    Private Sub BtnMat2_Click(sender As Object, e As EventArgs) Handles BtnMat2.Click
        'switch 4 players from current list to mat 2 and place the players from mat 2 back to current player list
        Static num = 3
        For clearLb = 0 To 3
            lstNames.Items.Add(LstMat2.Items(num))
            LstMat2.Items.Remove(LstMat2.Items(num))
            num = num - 1
            If num = -1 Then
                For fillListbox = 0 To 3
                    LstMat2.Items.Insert(0, lstNames.Items(0))
                    lstNames.Items.Remove(lstNames.Items(0))
                    num = 3
                Next
            End If
        Next
    End Sub

    Private Sub BtnMat3_Click(sender As Object, e As EventArgs) Handles BtnMat3.Click
        'switch 4 players from current list to mat 3 and place the players from mat 3 back to current player list
        Static num = 3
        For clearLb = 0 To 3
            lstNames.Items.Add(LstMat3.Items(num))
            LstMat3.Items.Remove(LstMat3.Items(num))
            num = num - 1
            If num = -1 Then
                For fillListbox = 0 To 3
                    LstMat3.Items.Insert(0, lstNames.Items(0))
                    lstNames.Items.Remove(lstNames.Items(0))
                    num = 3
                Next
            End If
        Next
    End Sub
    Private Sub BtnMat4_Click(sender As Object, e As EventArgs) Handles BtnMat4.Click
        'switch 4 players from current list to mat 4 and place the players from mat 4 back to current player list
        Static num = 3
        For clearLb = 0 To 3
            lstNames.Items.Add(LstMat4.Items(num))
            LstMat4.Items.Remove(LstMat4.Items(num))
            num = num - 1
            If num = -1 Then
                For fillListbox = 0 To 3
                    LstMat4.Items.Insert(0, lstNames.Items(0))
                    lstNames.Items.Remove(lstNames.Items(0))
                    num = 3
                Next
            End If
        Next
    End Sub
    Private Sub btnRemovePlayer_Click(sender As Object, e As EventArgs) Handles btnRemovePlayer.Click
        If lstNames.Items.Count <= 0 Then
            MessageBox.Show("There are no players to remove",
                "Important Note",
                MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,
                MessageBoxDefaultButton.Button1)
            Exit Sub
        Else
            lstMembers.Items.Add(lstNames.SelectedItem) ' return to members list
            lstNames.Items.Remove(lstNames.SelectedItem)  'remove player from current player list
        End If
    End Sub
    Private Sub btnRemove4_Click(sender As Object, e As EventArgs) Handles btnRemove4.Click
        If clearMat3 = True Then
            MessageBox.Show("Play Mat 3 before Mat 4",
                "Important Note",
                MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,
                MessageBoxDefaultButton.Button1)
            Exit Sub
        End If
        If clearMat4 = False Then
            LstMat4.Enabled = False
            LstMat4.Visible = False
            Label4.Visible = False
            BtnMat4.Visible = False
            btnRemove4.Text = "Play Mat 4"
            If LstMat4.Items.Count <> 0 Then
                For i = LstMat4.Items.Count - 1 To 0 Step -1
                    lstNames.Items.Add(LstMat4.Items(i))
                Next
            End If
            LstMat4.Items.Clear()
            clearMat4 = True
        Else
            If lstNames.Items.Count < 4 Then
                MessageBox.Show("You need at least 4 players",
                "Important Note",
                MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,
                MessageBoxDefaultButton.Button1)
                Exit Sub
            End If
            LstMat4.Enabled = True
            LstMat4.Visible = True
            Label4.Visible = True
            BtnMat4.Visible = True
            btnRemove4.Text = "Remove Mat 4"
            Static num = 3
            For clearLb = 0 To 3
                num = num - 1
                If num = -1 Then
                    For fillListbox = 0 To 3
                        LstMat4.Items.Insert(0, lstNames.Items(0))
                        lstNames.Items.Remove(lstNames.Items(0))
                        num = 3
                    Next
                End If
            Next
            clearMat4 = False
        End If
    End Sub

    Private Sub lstMembers_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstMembers.SelectedIndexChanged
        Dim listBoxes = {LstMat1, LstMat2, LstMat3, LstMat4, lstNames}.Where(Function(lb) lb.Enabled).ToArray()
        Dim listBox = listBoxes(0)

        For i = 1 To listBoxes.GetUpperBound(0)
            If listBox.Items.Count = 4 Then
                listBox = listBoxes(i)
            Else
                Exit For
            End If
        Next
        If lstMembers.SelectedIndex <> -1 Then
            listBox.Items.Add(lstMembers.SelectedItem)
            lstMembers.Items.RemoveAt(lstMembers.SelectedIndex)
        End If

    End Sub

    Private Sub btnDeleteMember_Click(sender As Object, e As EventArgs) Handles btnDeleteMember.Click
        Dim strMatch = InputBox("Delete Member", "Delete Member").Trim
        For Each itm In lstMembers.Items
            If String.Equals(itm, strMatch, StringComparison.CurrentCultureIgnoreCase) Then ' if they match
                lstMembers.Items.Remove(itm) ' remove from members list
                lstHidden.Items.Remove(itm) ' remove from hidden list
                Exit For
            End If
        Next
    End Sub

    Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
        Dim new_item As String = InputBox("Enter New Members name", "New " &
    "Member")
        If new_item.Length = 0 Then Exit Sub
        lstHidden.Items.Add(new_item)
        lstMembers.Items.Add(new_item)
    End Sub

    Private Sub btnRemove3_Click(sender As Object, e As EventArgs) Handles btnRemove3.Click
        If clearMat4 = False Then
            MessageBox.Show("Mat 4 is still in play!",
                "Important Note",
                MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,
                MessageBoxDefaultButton.Button1)
            Exit Sub
        End If
        If clearMat3 = False Then
            LstMat3.Enabled = False
            LstMat3.Visible = False
            Label3.Visible = False
            BtnMat3.Visible = False
            btnRemove3.Text = "Play Mat 3"
            If LstMat3.Items.Count <> 0 Then
                For i = LstMat3.Items.Count - 1 To 0 Step -1
                    lstNames.Items.Add(LstMat3.Items(i))
                Next
            End If
            LstMat3.Items.Clear()
            clearMat3 = True
        Else
            If lstNames.Items.Count < 4 Then
                MessageBox.Show("You need at least 4 players",
                "Important Note",
                MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,
                MessageBoxDefaultButton.Button1)
                Exit Sub
            End If
            LstMat3.Enabled = True
            LstMat3.Visible = True
            Label3.Visible = True
            BtnMat3.Visible = True
            btnRemove3.Text = "Remove Mat 3"
            Static num = 3
            For clearLb = 0 To 3
                num = num - 1
                If num = -1 Then
                    For fillListbox = 0 To 3
                        LstMat3.Items.Insert(0, lstNames.Items(0))
                        lstNames.Items.Remove(lstNames.Items(0))
                        num = 3
                    Next
                End If
            Next
            clearMat3 = False
        End If
    End Sub

    Private Sub LstMat1_Click(sender As Object, e As EventArgs) Handles LstMat1.Click
        ' remove a single player from LstMat1
        Dim delete As String
        If LstMat1.Items.Count > 0 Then
            delete = MessageBox.Show("Delete" & vbCrLf & LstMat1.SelectedItem & "?",
                "Important Note",
                MessageBoxButtons.YesNo,
                MessageBoxIcon.Question,
                MessageBoxDefaultButton.Button1)
            If delete = vbYes Then ' check this is the player you want to remove
                lstMembers.Items.Add(LstMat1.SelectedItem) 'put the player back in to lstMembers
                LstMat1.Items.Remove(LstMat1.SelectedItem)  ' and remove from lstMat1
                If lstNames.Items.Count <> 0 Then               ' if lstNames has players
                    LstMat1.Items.Insert(0, lstNames.Items(0)) 'place first name in lstNames in to lstMat1
                    lstNames.Items.Remove(lstNames.Items(0))   ' remove first name from lstNames
                Else                                            ' if no names in lstNames
                    For i = LstMat1.Items.Count - 1 To 0 Step -1 ' then place players from lstMat1 
                        lstMembers.Items.Add(LstMat1.Items(i))  ' back in to lstMembers (lstMats need 4 players)
                    Next
                    LstMat1.Items.Clear()
                End If
            End If
        End If
    End Sub

End Class
NAMES
Graham
Anne
Marion
Mick
Jan
Pauline
John
Eiry
Mandy
Arwel
Iris
Malc
Pat
Kath
Barbara
Rhona
Doreen
Ann