Gashapon seems useful but I need to control the outcome for this one.
The group thing, I think that is called a dice roll.
I am actually using it and seed due to gameglaux
I thought I had it accurate enough before all of this. I ran some simulations and an item that was suppose to drop .08% was given 0% - 6% of the time in 1 of the simulations. I couldn't have that for some items.
I now have a dice roll to select a group and in each group I have probabilities for each item in that group, very similar to what gameglaux and TylerMon suggested.
I have a seed that is set to pick a seemingly random number between 1-100 and not repeat an obvious pattern or the same number until item 101 is looted. Even after item 101 is looted the pattern shouldn't be noticeable because the subgroup will seemingly have randomness to it.
Using this I can be sure that every item group is selected properly.
A 1% chance to get an item from the legendary group will always be 1 out of 100, no matter what.
If I need to increase the drop rate of an item I can be sure that it is given out as intended, while still maintaining a seemingly random aspect.
What I put in the legendary group will be 100% of the 1% of the group's availability.
If I pollute the legendary group with 90% potions and actually 10% legendary items. Then getting a legendary item is 10% of 1% or 0.1%.
Using a formula for subgroups then I can control what 0.1% means.
By having an uncontrolled random it will translate to where 0.1% means every time you get a chance to get an item from the legendary group you have an actual 0.1% chance to get it. Meaning you will get 0-1 legendary item(s) in 100 loots. I would do this by having a random or unrelated controlled seed for subgroups.
By doing a controlled random. It will select all the numbers 1 by 1 seemingly random without repeats until all values are used. This means opening 10,000(100x100) will give you 1 of every available item, this means 100 legendary items. This is done by checking the main seed number. If the same main seed is picked twice then it means the main seed ran 100 times. I can then change a variable for the subgroup seed. Using the main seed and the same math I can calculate that every value in the subgroup is selected the same way as the main seed. This means 0-100 will be selected in each subgroup without repeats until the 101st item from that group is looted. Meaning no subgroup seed value will be repeated until 10,001 items have been looted. When the 10,001 item has been looted then the whole pattern starts over....
What I was trying to do before was trying to compare a placement in a variable and set a new variable to it.
I don't think it is easily possible.
Example:
A random number would be 435
I was wanting to be able to get:
4, 3 and 5 from it and set it to variables in order to randomize other things.
I was hoping for a wildcard type thing but I couldn't find anything.
I though about doing math. It would be a lot of extra unneeded calculations and I'm not sure how to do it.
The combination of dice roll and seed seems to be best.
Thanks guys.