In situations where a die roll is impossible, a series coinflips can be used. this can be achieved by representing each number as binary.
First, decide on which of heads or tails to represent 0/1.
Then, flip the coin, recording the result, this gives you the "ones" column, or a value of 0 / 1.
Then, flip again for the "twos" column, giving you a value of 0 or 2, add this to the previous (giving 0, 1, 2 or 3 respectively)
Then, flip again for the "fours" column, giving you a value of 0 or 4. Add this to the previous (giving 0, 1, 2, 3, 4, 5, 6, 7). This should be enough for 90% of situations. It is zero indexed, so either add one to the final result, or label your cards from 0 to x. As with any other solution that doesn't perfectly fit the cards present, repeat if you hit a number in excess of the choice of cards. If you have less than 4 cards in hand you can skip the last step. If you have more than 8 you can add another flip to cope with up to 16 cards etc etc.
I have no idea of a situation where you would be able to comfortably lay out magic cards but not roll a die, but if you find yourself in this particular magical Christmas land, then this gives you a legitimate way to resolve the decision randomly.
Having said all of this, if you can feasibly use a die, this is the best way to do it.
As for your rights:
You can and should demand the decision be made based on die rolls, the cards should still be shuffled for this.
The rules demand that decisions like this be decided in a way that cannot under any circumstances be pre-determined.
That means that a method where it is possible - even if it relies on an opponent's ineptitude - to be pre-determined. That is quite simply called an attempt to cheat, so don't do it.