Is this good enough for something like a raffle or picking a winner?+−
For everyday fairness (a raffle among friends, deciding who goes first, shuffling a small list) yes - it uses your browser's cryptographic random number generator (crypto.getRandomValues), the same source used for encryption keys, so no earlier result gives away the next one. For anything with real money or legal stakes, use a purpose-built, audited random-number service instead.
What happens if I ask for more unique numbers than exist in the range?+−
The count is capped at the size of the range - for example, asking for 20 non-repeating numbers between 1 and 5 gives you all 5, since there aren't 20 different numbers to give.
Is a coin flip really 50/50 here?+−
Yes - each flip is an independent draw with an equal chance of either outcome, the same way each dice roll or number pick is independent of the others.