Veamos...así rápido me viene a la mente un famoso procediemiento para obtener de manera aleatoria índices de un arreglo, asi que el primer paso sería convertir tu string en arreglo:
Código:
DIm indices
Dim arr
Dim separador
Dim max
Dim min
Dim unIndiceAleatorio
min = 0
separador = ","
indices = "23,45,44,39,76,41,3,87"
arr = Split(indices, separador)
max = uBound(arr)
'este es el truco
randomize
unIndiceAleatorio = Int((max - min + 1) * rnd + min)
Response.Write(unIndiceAleatorio)
Puedes hacerte una funciion y bueno, tendrás que controlar mas cosas como que sea arreglo el resultado del split y quizás puedes pasarle un argumento más a la función con un valor para que no te devuelva el mismo, y se llame a si misma en caso de que el valor a regresar sea el mismo del argumento, etc, pero la idea es esa.
Saludos