Brother .. na interface ResultSet não se tem nenhum método ou atributo que tenha a quantidade total de registros ..
Uma solução rápida (sem pensar muito, digo!) seria criar um contador. Ou seja, você percorre o resultado e para cada ítem encontrado vc acrescenta 1.
ResultSet rs = .... ;
int cont = 0;
while(rs.next()) {
cont++;
}
Depois disso ... é necessário o código abaixo!
java.util.Random num = new java.util.Random();
int i = num.nextInt(cont+1);
pronto .. i vai ser um número randômico de 0 até o número de registros do seu resultado!
depois disso você pode utilizar o método absolute(int);
Esse método vai colocar o cursor do ResultSet na posição que você especificar ..
execmplo:
rs.absolute(10); // move o cursor para o décimo registro ..
Se você presar atenção à interface ResultSet verá que tem um método relative(int). Esse método é parecido mas pode confundir um pouco. Ele move n registros a partir do registro atual ..
Considerações a parte .. use o absolute() ..
[]s