Storing resistors in envelopes or small plastic bags is an obvious way of storing them in a way that makes them easily retrievable. I followed the same route, but in a way I think has some extra benefits: It's very easy to find a specific resistor and retrieve it without getting bags/envelopes mixed up or lost.
Step 1: The System in Theory
I based my system on a quarter watt resistor kit containing the E12 set of values ranging from 0 ohms to 10 megohms. The E12 system contains 12 values per decade, namely 1, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7. 5.6, 6.8 and 8.2 ohms in the 1 to 10 ohm range. (Multiply by 10, 100 etc. for the other decades, or divide by 10 for the 0 to 1 ohm range.)
It made sense to me to divide all the resistors into different groups according to decade, with each group then containing its 12 values in ascending order. That gave me 9 groups (0-0.82 ohm; 1-8.2 ohm; 10-82 ohm; 100-820 ohm; 1k-8.2k; 10k-82k; 100k-820k; and 10 megohms (my kit only came with 10 and 15 megohm resistors).
To retrieve a resistor of a specific value, it's easy to first go to the right decade and then find the required value.
Step 2: The Physical System
Luckily for me the supplier of my resistor kit already sorted all the different values into resealable bags, 10 of each in a bag. The values were also already written with a permanent marker on the different bags (first picture). All that was left for me to do was to arrange them in value from low to high.
I then grouped the bags according to decade, which gave my nine groups of 12 bags each. Then I carefully lined up each group of bags (second picture) and stapled their bottom ends together (third picture). In that way the order stays the same and no individual bag can get lost or misplaced. But it's still easy to flip through them to find a specific value. (You can of course also mark the bags with stickers which is more legible -- last picture.)
I now had my 9 packets of bags, but still needed a housing to keep them neatly in order and in place.
Step 3: The Box
To house the packets of resistors, I built a cardboard box with the required 9 compartments (first picture). The size of the bags dictated the size of the box, which came to 27 cm in length (9 compartments, each 3 cm thick) by 11 cm high and 9 cm wide. The side of each compartment was then marked with the corresponding decade (second picture).
Now it's easy to remove the packet of resistors containing the required decade, flip through it and take out the needed value, and then put them back without misplacing a bag, or disturbing the other bags in the box.