What is a more equal-opportunity way to distribute access to a free event that is expected to sell out quickly?

A much better method than releasing all of the tickets at once is to release them in batches—say 50 tickets at a time over three different releases. This greatly reduces the “only people online at the time get a chance” factor by giving people three separate chances to grab their ticket. You can vary the time of day for each batch to make it fairer for people who might be at work / in meetings / having dinner with family at certain times of day (or to take timezones in to account if you expect attendees from far away).

Another problem you need to consider is that of no-shows—if the event is in that high demand and is free, you’ll have some people who grab a ticket just in case they decide they want to go. This is a very tough problem to solve for a free event—one thing that can really help is sending a reminder email a few days before the event saying “there are a LOT of people on the waiting list, so please let us know if you aren’t coming so we can give your place to someone else”.