POrque no lo haces desde una base de datos... (sql server por ejemplo) y desde una query puedes traerte un registro aleatorio..algo así:
Cita: SELECT pregunta FROM tabla
ORDER BY NEWID()
La otra (aunque puede ser algo pesado y costoso) es usar un Dataset con todas las preguntas y a través de la case Random generar un valor aleatorio y mostrarlo...
ejemplo:
Cita: ......
Dim ds As New DataSet
dAdap.Fill(ds)
Dim r As New Random
Dim iMaxNum As Integer = ds.Tables(0).Rows.Count - 1
Dim iRow = r.Next(0, iMaxNum)
Dim sRandom As String = ds.Tables(0).Rows(iRow)(2)
Response.Write(sRandom)
Y listo.. siempre tendras un registro aleatorio, si ese es el caso te recomiendo que por ejemplo guardes en cache el dataset (si es que no va a estar cambiando) para que el acceso sea más rápido y no tengas que estar abriendo una nueva conexion y llenando el dataset.
Salu2