for loop is for the integer "i", but where did you use it?
I don't. It is used to keep track of the iterations (see the i<5 in the for loop declaration), if you don't do this it will loop forever.
i is incremented each iteration, then when i fails the check of i<5, i.e when i equals 5 (or more) the for loop terminates.
You could also do:
//loop code here
Remember 5 is just an arbitrary number, i used 1/2 the array size as the number of shuffles, but the more you do the more it shuffles.
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...