Hola
No lo había probado creyendo que funcionaba

. Prueba ahora
Código asp:
Ver original<%@LANGUAGE="VBSCRIPT"%>
<%
Function NoAleatorio(inicio, fin)
Randomize()
NoAleatorio = Int((fin - inicio + 1) * Rnd + inicio)
End Function
Response.Write "SACAR REGISTROS ALEATORIAMENTE<br /><br />"
'Numero de registros que devolveremos del recordset
recNo = 3
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("./Prueba.mdb")&";"
SQL = "SELECT TOP " & recNo &" id, referencia, nombre, tamano FROM tabla5 ORDER BY " & NoAleatorio(1,4) &""
'---Debug-----
'Response.Write(SQL)
'Response.End()
'-------------
set rs = oConn.Execute(SQL)
registros = rs.GetRows
rs.Close
Set rs = Nothing
oConn.Close
Set oConn = Nothing
For i = 0 To UBound(registros,2)
Response.Write registros(0,i) &" - " & registros(1,i) &" - " & registros(2,i) &" - " & registros(3,i) & "<br />"
Next
%>
Nota; Fíjate en esto
NoAleatorio(1,4). En este caso obcila en el 1 y el 4 por que son el número de campos que he seleccionado. Si en tu caso seleccionas 7 campos, entonces sería
NoAleatorio(1,7)
Suerte