Вы не можете использовать объект Random в запросе подобным образом, поскольку объект существует в вашем VB-коде, а не в базе данных.
Сначала выведите результат в список, затем зашифруйте его. Гораздо эффективнее использовать алгоритм скремблирования, такой как Фишер-Йейтс / Кнут, чем сортировку по случайному значению:
Dim rnd as New Random()
For i As Integer = gardens.Count To 2 Step -1
Dim pos As Integer = rnd.Next(i)
Dim x = gardens(i - 1)
gardens(i - 1) = gardens(pos)
gardens(pos) = x
Next
Кроме того, для сортировки по случайному значению необходимо либо знать, что алгоритм сортировки никогда не будет переоценивать соотношение между двумя заданными элементами, либо вам необходимо присвоить случайное значение каждому элементу, чтобы он использовал то же значение на протяжении всей сортировки. Если бы метод, который вы попробовали, был бы возможен, вы могли бы получить тот же плохой результат, что и на странице Browser .