A dice does guarantee entropy, it is free (minus the cost of the dice), assuming you are sure the dice is not weighed. You could also use a deck of cards, although I am not sure how to ensure the deck is properly shuffled.
I think that every home have at least one deck of cards if not more, but it's strange that so far I didn't found a single article that shows how you can use your deck for generating seed words.
It's probably best to use dices, and I don't think they are tweaked and weighted unless you got them from some dirty casino
A private key (or a seed) is just a very large number. If you do some task with a random output, all you have to do is assign each outcome a value, and do some calculation with the output of that value.
For example, if you wanted to roll dice (6 sided), you might use the following procedure:
start out with an arbitrary number, perhaps 0, called "num"
each time you roll your dice, add the value of the dice to "num" then multiple "num" times the value of the dice. If your dice are not numbered but have a unique color on each side, you could assign a value to each color and follow the same procedure. The resulting value for "num" is your private key, although you will likely need to apply additional function(s) on the number in order for most wallet software to be able to do anything with your private key.
If you were to use a deck of cards you could assign each card a value and follow the above procedure.
If you wanted to generate a seed you can write down, you could use the following procedure:
Assign each of the 2048 words in the BIP39 word list a value.
Your first word will be the output of "num"
modulo 2047.
Use
integer division on "num" to divide "num" by 2047 to get your new "num" value
Repeat until you have an appropriate number of seed words.
Ian Coleman's site accepts cards as an entropy source, but I don't like the way it does it. In his system, to assign each of the 52 cards a different value, 32 cards contribute 5 bits of entropy, 16 cards contribute 4 bits, and 4 cards contribute 2 bits, since 25 + 24 + 22 = 52. I don't like the fact that some cards are "more secure" than others. It also encourages someone to shuffle a deck of cards and then simply draw them all in order. This reduces entropy, since after you have used one card you will never use it again, and so that patterns of bits will never be repeated.
I am not able to find where on his site you can use cards to generate a seed.
Using his method for a full deck of cards will give you what is claimed to be 232 bits of entropy, but in reality it will be less than that for the reasons I have given above. If you use the full deck of cards to generate a 12 word (128 bit) seed phrase, then you will be fine, but if you stop inputting cards when his site tells you you have reached 128 bits, then actually your seed phrase will be weaker than advertised.
Now consider a deck of cards. Perhaps I am bad at shuffling, and so whatever card I drew from the top last has a higher than average chance of staying near the top, meaning I recycle the same 10 or so cards throughout my entropy generating process. Or perhaps I only use riffle shuffles, which means cards near the bottom will never leave the bottom. Or perhaps I don't bother shuffling between every card because it takes too long. And so on. There are too many variables and too many corners which can be cut which you cannot do with flipping a coin or rolling a dice.
If you pick the top card from a 52 card deck of cards, any given card will have a 1-in-52 chance of being chosen. If you pick two cards, the particular order that you pick those two cards is one out of 2652 possibilities, which is just over 11 bits of entropy. If you pick 31 cards, I calculate that particular order of cards will work out to approximately 160 bits of entropy. If you pick all 52 cards (without ever reshuffling), the specific order you picked the cards will give you approximately 225 bits of entropy according to my calculations.
So as long as you can shuffle the cards well one time, you will be able to generate a "strong" private key.