The program I use has a RNG(random number generator) with no particular algorythm. It stores up to 2000 seven digit lottery file(Ohio649P has seven digits) and can store up to 300 picks. When I start the program, it load up chosen lottery file, analize it, displays data like sums, gaps, and numbers of time numbers in file have matched 1,2,3 and etc. I can look at that data, use it for my parameters or choose different parameters. The program pick a number randomly, sort it and compare it with the numbers it has already picked and if not rejected for duplications or other limits as setted by the parameters, it is compared with the the lottery file and if not rejected, it is printed out for me to accept or reject. I don't usually play more than 20 numbers so the 300 number capacity is more than I'll ever need unless I'm picking numbers for a pool. I've used this program for several years, making impovements when I get a new idea. When I first wrote it, I tried to come up with some algorythm, but I found a RNG was just as good and a lot faster for picking 100 combinations or less.
RJOh