Two modes, one fair draw
Random numbers gives you values between a minimum and a maximum, inclusive of both ends. Leave allow repeats unchecked and every number is different, which is what you want for a lottery-style pick such as 6 numbers from 1 to 49. Check it and each draw is independent, so the same value can appear twice - the correct model for simulating dice, coin flips or survey sampling with replacement. Pick names takes a list with one entry per line, ignores blank lines, trims stray spaces, and draws the number of winners you ask for without ever picking the same line twice.
Both modes draw without replacement using the same method: pick a random position in the remaining pool, take that entry, remove it, repeat. That guarantees a uniform result and no duplicates. If you ask for more picks than there are entries, the tool simply returns the whole list in random order, which doubles as a way to randomize a running order or a schedule.
Where the randomness comes from
The page uses crypto.getRandomValues(), the browser's cryptographically secure random source, which draws entropy from the operating system - the same pool used to create TLS session keys. It is available in every browser released since about 2012. If it is missing, the page falls back to Math.random() and says so in the results.
Getting a fair number in a range takes a little care. Simply computing random % range introduces modulo bias: because 2^32 is not usually divisible by your range, the lowest values come up slightly more often. This tool uses rejection sampling instead - it discards any raw value that falls in the incomplete final block and draws again - so every value in the range is exactly equally likely. For a range of 100 the bias would have been tiny, but for large ranges it is measurable, and the fix costs nothing.
Using it for giveaways and classrooms
For a social media giveaway, export the entrants, paste the list here, check that the count shown matches what you expect, and draw. Record a screen capture of the draw if you need to show entrants it was fair; also draw one or two alternates in the same pass, since winners often do not respond. Remove duplicate entries first if one person could enter several times and you want one entry each - the sort and dedupe tool on this site does that in a click.
In a classroom, use the name picker for cold calling, group assignments or presentation order. Teachers usually want every student called once before anyone repeats, so set the pick count to the full class size and use the shuffled order top to bottom. Everything runs locally in your browser, so student names and entrant lists never leave the machine, and no result is recorded anywhere - take a screenshot if you need proof of the outcome.