Dim rnd As New Random()
Dim ARR As String() = {"abc", "cde", "efg", "hij"}
For Each value In ARR.OrderBy(Function(x) Rnd.Next())
DataGridView1.Rows(1).Cells(1).Value = value # this only writes in row 1
Next
Change the row value to an integer that increments each time round the loop.
Dim rnd As New Random()
Dim ARR As String() = {"abc", "cde", "efg", "hij"}
Dim rownumber as Integer
For Each value In ARR.OrderBy(Function(x) Rnd.Next())
DataGridView1.Rows(rownumber).Cells(1).Value = value
rownumber++
Next