I don't understand why you think it would be completely unworkable, or even difficult to implement.
You're just getting the number of UAs in existence and amending a drop table depending on the result. Surely it's pretty straightforward, the game already amends drop tables depending on criteria.
On the flipside trying to balance something like how many items you'd expect to see out there via a PNRG algorithm which isn't true-random, while at the same time having the find rate influenced by a metric ton of factors would be an huge PITA to manage.
First - rep for your IO video; good work
You and I see eye to eye on an awful lot of things, but on this I'm afraid you're hung up on a detail that's irrelevant and, more importantly, just wrong.
You talk about 'true random' - what is that?
A, not quite formal, but decent enough, description is a sequence of numbers where it's
not possible to deduce the next number in the sequence by analysing any quantity of the numbers in the sequence.
Popular random number generators present in most platforms are based on mathematical formulae which have an inherent periodicity - that is, they will get to a certain point in the sequence and repeat. That's bad pseudo randomness, but valid for some applications.
Cryptographically secure pseudorandom generators, on the other hand (available with fewer than 5 function calls on a windows platform in native code), do not use such implementations.
These use a large number of different sources of entropy within the machine (both hardware and software) to generate sequences of bytes where it's impossible to see a pattern, without knowing every single measure that's being incorporated in the calculation. That's good pseudo-randomness and is accepted, to all intents and purposes as being 'true random'.
Managing a spawn rate based off that source of information, and then using prime numbers distribution, as I described in my post, gives you a perfect way to generate random occurrences where the odds remain realistically the same all the time. Trust me - I've written a coin flip simulation based on similar principles and it yields an almost exact (within about 4-6 decimal places after a few thousand iterations) 1:2 chance of a head or tail, without having to track any numbers that have been 'dished out' before.
So, yes, it's absolutely possible, and easier, to control a spawn rate with a source of entropy like this. At worst, you might keep a record of the last time you dished out a UA spawn, and put a cool-down time on it. That's one column for one record in a database table.
Whereas keeping track of all the UAs in people's possession - yes, it's easy - but what if a CMDR goes on holiday for a month and has two in his/her hold, logging out in deep space? Suddenly you have reduced the pool for everyone else, potentially preventing them for appearing for anybody. So you can add some extra layers to manage this, and logically decide to add some more - meaning that your hard limit of
n UAs can't have been that important in the first place - because you've had to break that rule.
Plus you're now writing more code with more logic that can go wrong to solve a scenario that you could've just done with a decent random number generator.
Nature shows us time and time again that complexity arises from simple rules - and the best software obeys those same principles. Frontier are genuine experts in procedural generation, and at the heart of it are principles such as these, and they apply to generating temporal data, I.e. events in a simulation, as well as they do to generating terrain on a planet surface.
Finally, apologies to everybody for such a boring and dry post. I promise never to post such a thing ever again.