# Algorithm to generate random token ids.

pawan chopra
Ranch Hand
Posts: 417
Hi All,

I want to know what kind of algorithm I can use to generate a random token which is combination of String and Integer.

Sebastian Janisch
Ranch Hand
Posts: 1183
you could create an array of available characters then iterate for n steps (where n is the number of characters you want the token to consist of) and append a random item from the array to the token.

manoj r patil
Ranch Hand
Posts: 182
Math.random() ???

Sebastian Janisch
Ranch Hand
Posts: 1183
exactly

Gopi Chella
Ranch Hand
Posts: 53
You can use priority Queue also with the combination of Random class.

Priya dharshini
Ranch Hand
Posts: 78

This method returns unique ID which is combination of String and Integer.

Campbell Ritchie
Sheriff
Posts: 50656
83
Are you using truly random numbers (which entail possible duplications) or do you want random sampling from a diminishing population, in which case your values will be unique? For random sampling from a diminishing population, put values into a List (probably via a Set to avoid duplicates) and remove the value selected; the List will gradually become smaller, so your random numbers must be chosen from a diminishing range.
Alternative: shuffle a List and choose the first n values.
Remember the Random class and Math.random() are not truly random, but do present possible duplications. If you use Math.random() long enough, you are guaranteed to receive duplicate values.

Rob Spoor
Sheriff
Posts: 20707
68
That's true for each (pseudo) random number generator. Given a possible N values, there is always a chance of 1 out of N that the next value will be exactly the same.

pawan chopra
Ranch Hand
Posts: 417
Campbell Ritchie wrote:Are you using truly random numbers (which entail possible duplications) or do you want random sampling from a diminishing population, in which case your values will be unique?

we do not want any duplications. Actually we have a user name based on that we want to generate a token id.

Campbell Ritchie
Sheriff
Posts: 50656
83
Do you know the user names will be free from duplications?

pawan chopra
Ranch Hand
Posts: 417
Campbell Ritchie wrote:Do you know the user names will be free from duplications?

Yes. we are sure about that. I am doing like this for now. username+username.hashcode(). It will be unique.

Rob Spoor
Sheriff
Posts: 20707
68