The above example creates a new 2D array. But if you want to randomise an existing array (of numbers, strings, etc) you first need to create an entire random list of indexes for the array, and then index your original array with this new list, building a new array as you index each original array element. It is a bit tricky, but it works. I can send an example if you need it.
PS. If you require the example let me know if you want the 2D array comletely randomised, or if you want to keep rows or columns together.