Le ho provate in tutte le salse! Magari è una stupidata ma non riesco a inserire Close e Dispose, mi dà sempre errore. Posto il codice, così mi dite dove cavolo sbaglio!
Un grazie anticipato!

Public Class Form1
Public Forms(3) As Form
Dim casuale, i As Integer
Dim total_forms As Integer

'------------------------------------------------------------------
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Forms(1) = Form2
Forms(2) = Form3
Forms(3) = Form4

total_forms = 3

For Me.i = 1 To total_forms
Forms(Me.i).MdiParent = Me
Forms(Me.i).Text = "Sono il FORM N. " & i.ToString
Next

Randomize()
casuale = CInt(Int((total_forms * Rnd()) + 1))
Forms(casuale).WindowState = FormWindowState.Maximized
Forms(casuale).Show()

End Sub

'------------------------------------------------------------------
Private Sub EsciToolStripMenuItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EsciToolStripMenuItem.Click
End
End Sub

'------------------------------------------------------------------
Private Sub CambiaFormToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CambiaFormToolStripMenuItem.Click
Randomize()
casuale = CInt(Int((total_forms * Rnd()) + 1))
Forms(casuale).WindowState = FormWindowState.Maximized
Forms(casuale).Show()

For Me.i = 1 To total_forms
If Me.i <> casuale Then
'Forms(Me.i).Close()
'Forms(Me.i).Dispose()
End If
Next
End Sub
End Class

'------------------------------------------------------------------

Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Randomize()
Dim numeroacaso As Int16 = CInt(Int((1000 * Rnd()) + 1))
Label1.Text = numeroacaso.ToString
End Sub
End Class

'------------------------------------------------------------------
Public Class Form3

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Randomize()
Dim numeroacaso As Int16 = CInt(Int((1000 * Rnd()) + 1))
Label1.Text = numeroacaso.ToString
End Sub
End Class

'------------------------------------------------------------------
Public Class Form4

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Randomize()
Dim numeroacaso As Int16 = CInt(Int((1000 * Rnd()) + 1))
Label1.Text = numeroacaso.ToString
End Sub
End Class