How it works: IO links have a project name in the URL, but it also works if you remove everything except the ID number.
So, a Perl script using WWW::Mechanize first visits the Projects page "sorted by date" and identifies the highest ID in use. Then, it repeatedly chooses a random number and tries a GET to see if that page exists. If no 404 is returned, it gives the URL back.
A simple PHP wrapper calls the Perl script and returns the URL in a Location: header.
Would hackaday's API for GET /projects be easier for this? https://dev.hackaday.io/doc/api/get-projects