楼主有几个逻辑性错误:
1、i++不是asp的语法,应改为i=i+1;
2、while循环已经使用了变量i,里面的for循环如果还使用变量i,就会造成死循环,也要改,比如把for的i改为x;
3、function得写在while外面,而不是写在它里面,这是非常严重的逻辑问题。
综合改动如下(已测试):
Function Rand(n)
while i<10
Dim a, b, i
a = "0123456789ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz"
Randomize Timer
For x = 0 To n - 1
b = b & Mid(a, Fix(35 * Rnd) + 1, 1)
Next
Rand = b
i=i+1
wend
End Function
Response.Write(Rand(5)) //函数调用测试