Dice work just fine for the most common numbers of players
I work with probabilities a lot. Dice allow you to represent many common probabilities, but when you want to roll to pick from options, I've discovered the following "law": it stops making sense to people when you have to roll more than a single die at once. Luckily, the most common numbers of players can be chosen from using just a single die roll, or a single die roll that occasionally gets re-rolled when its result is invalid.
If you have a single player, no need to roll.
If you have three players, a d6 will do --- one player gets results 1-2, another 3-4 and the third one 5-6.
Five players, roll a d10. One player gets 1-2, the next 3-4, then 5-6, then 7-8, and the final one 9-10.
There is just a bit of math behind these two options: they work neatly because three and five are factors of six and ten, respectively. That means we can "partition" each dice's possible outcomes into that many equally probable sets, similar to how we can use "odd" and "even" to select from two options using a d6.
Seven players is the first tricky one because it's the least prime number that's not a factor of any of the common die sizes of 4, 6, 8, 10, 12 or 20. This means you cannot resolve a choice between seven players with any bounded number of these die rolls with complete fairness. You can, however, use a d8 with numbers 1-7 corresponding to each of the players and 8 indicating a reroll. The chances of having to roll the die impractically many times for a single decision are minimal.
Nine players or eleven players, similar to seven except use a d10 or d12, respectively. Since nine is divisible by three, you can also use two rolls of a d6: first divide the player into three groups of three, let the first roll decide which group you pick and the second roll which particular player from that group. The d10 method is simpler, though.
You can of course use arbitrarily large dice to cover any amount of players using the "reroll if too high" strategy, but it can get unwieldy for larger numbers.
Drawing from a deck of cards works for many sizes of groups
Using a deck of cards provides a simple solution for groups small and large, without having to remember any complex roll rules. Have each player draw a card from a standard deck of 52 cards. The player who gets the highest card (or lowest, if you prefer) is chosen. Remember to have a set convention on the ordering used (aces high or low and precedence of suits).
There's 52 cards in a normal French-style deck of cards, and each is unique, so you can choose a random player with everyone drawing a single card for groups up to 52 players. That's probably more than enough.
Draw from a bag
Yet another classic method: have each player write their name on a slip of paper. Put them in a box or bag, and resolve the decision by drawing one without looking. My experience is that this is quite awkward especially when table space is limited --- I appreciate the other methods' compactness. However, this method works quite well regardless of the size of the game, assuming you have a big enough box for the name slips and shuffle it well.
Random number list, if you want to keep it secret
If you know the amount of players you'll have in advance, you can create a list of random numbers and bring that to the game with you. When consulting the list, cross over the topmost number on it and select the player based on that number.
This solution is, for most games, over-engineered, but it has an advantage in that unlike die rolls and draws from the deck of cards, it is very subtle and allows invoking the randomness without signaling it to your players. My experience has been, though, that it's best to let the players know when you're actually choosing one of them at random in most cases --- otherwise, they can assume the choice is you being arbitrary.