tags:

views:

50

answers:

1

Tried to create a random method that would query the database, obtain the number of rows in the database, and then grab a random number between 1 and the total number of rows to fetch a specific item in the database. It works alright, but not great, if there are less than ten entries in the database it will repeat the same entry about 4 out of ten times. I think I need a lead on a better method.

 number = mDbHelper.getCount(mDbHelper.mDb);
 Random generator = new Random(); 
 n = generator.nextInt((int) number);
 if(n <= 1){
   n = 1;
 }

Any ideas?

+2  A: 

First, I would try moving the line:

Random generator = new Random();

To your class's constructor or some other place where it will only get created once. That should definitely help.

Other than that, the answers to this question might help you out: http://stackoverflow.com/questions/453479/how-good-is-java-util-random

mbaird
I do have the random function in the class constructor. I am looking over the answer the you posts, there is a lot of information in there.
Will