Handshake uses an auction, so everyone has a chance to get the TLD they want, if multiple people want it. That seems the most practical solution.
There’s no decentralized method to prevent scalping. Scalping can happen whether it’s first-come-first-serve or auction.