A sophisticated yet accurate way would be to use a webhook that is a counter. Each tile the webhook is called, it return a incremented number that you store in a specific lead counter field. Then you select all the leads which lead counter field is below a number.
A less accurate but quicker way is to use a ramdom sample on a smart list which total number you know. If you create a smart list with 10000 leads and you take a 20% sample, you will have 2000 leads.
For my purposes, I think I will do a random sample from one of my smart lists. When I create this random sample, do I add the "random sample" filter in my smart list, then just delete the filter once this specific email has been sent?
This thread dives into this topic and has my suggested work-around:
While you're at it, please vote for this idea:
This is what we need to simply accomplish sending to a list of random leads, but allow us to choose the size of the list.