Out of the box, the short answer is that you'll have to use other smart lists to get a (nearly) random sample, and you'll have to do the math on your own end to get the list of recipients down to about 100 persons.
Here's how you can do it.
You'll want to get your group of 30k as close to divided into three groups of 10k as possible before doing a random sample flow step. The way we usually do this is with your most reliably-filled Marketo field—email address. After that, we'll put in a random sample flow step to take that new group of 10k and get 1% of it—100 leads.
Get 33% of your pool by filtering with "Email address starts with ___." "Email address starting with" is a repeatable filter that's random-ish, although will have patterns from a pure mathematical perspective. Practically, I'd say it's reasonable to use in this context, because its pattern doesn't have significant negative effects on your recipients. You'll have to play with the letters in the smart lists screenshotted below, because there will be different numbers of email addresses starting with each character, and you'll just want each "Email address starts with ____" filter to grab about 33% of your total pool. (Note that the last group will be "Email address not starts with ____" to ensure you're getting 100% of the database—there are always a few prospects who start with special characters, numbers, or random exceptions that you're catching by putting your logic like this)
Send to 1% of this set by a random sample flow step choice catching 1% of the target audience. "Random sample" isn't literally random, but it's practically random. You can use a filter to break your group into smaller chunks using a random sample filter, getting down to 1% of your largest pool (10,000 -> 100 pools of 100 people).
Three smart campaigns to do each send, and you can schedule each smart campaign to run a separate week (or month, depending on how frequently this is happening):
- Send Email: A-H
- Send Email: I-O
- Send Email: (Remainder)
Smart Lists, whose goals are to take your original group of 30k and get them nearly-evenly dispersed into three subgroups of about 10k each.
[Account Owner is X, which is your way to target the 30k persons] AND [Email Address starts with: A, B, C, D, E, F, G, H]
Send Email: A-H

Send Email: I-O

Send Email: N-Etc

Flow Steps for each smart campaign—going from 10k to 100 through a 1% random sample choice in a flow step.
Flow:
[Send Email, add choice: if random sample is 1, send email; default = do nothing]

Note that you'll have to do the math on seeing how many persons each "email address starts with" subset affects, and you'll have to tweak each to be about 33% of the total group. That might mean that the first group could be A-E or A-N, depending on the distribution of email address starting with these letters in your database.
It won't ever be exactly 100 recipients for each smart campaign (or at least, it's really unlikely to be), but it'll be close to that number.
Cheers,
Edward Unthank | Founder, Etumos
EDIT: Shoot, that's what I get for typing a novel. John beat me to it.