The master list of both current and expired subscribers exists in two IMAP mail folders, with member numbers as part of the subject for easy searching, and scheduled reminders (in Thunderbird) for folks who need to be manually expired on a certain date or reminded for manual renewal (check or cash).
We have folks who lapse for a year and come back (thereby reclaiming their number), and it's an easy way to store/associate the data that came in with their original subscription (date, email, amount paid, etc)... I could do a spreadsheet, but it would actually increase the work to keep it up to date.
As for "fair chance", I would debate that such a dynamic random generator makes it truly random, even if I have to regenerate a list... All members stand the same chance of coming up at the top of the list twice in a row (after regenerating - which I've actually seen), or not coming up at all, no matter how many times I hit the button.
Your thoughts are clear and fair Pete, but with the added work (second database) and ultimately random chances, I'll stick with what we're using.
Always open to more thoughts though, especially if I've somehow failed to understand something.