Any well written dice roller will give you perfect random rolls (well, pseudo-random — the difference doesn't matter for gaming).
Some dice rollers are not well written, or depend on the underlying OS/language's source of random numbers, which itself can be well written or not.
The vast majority of the time you will find dice rollers more random than actual dice, which, being physical objects, will be flawed.
I know of one product that had to change the library it used to generate rolls because the OS implementation was poor, but that is a rare case.
It depends on your style
When I first ran my first game, I kept all the rules transparent. Barring some things that could reverse-engineer the NPC's I didn't want them to be able to gauge, I let every last thing be entirely known to them.
"You need 3 successes (we were playing Shadowrun) at TN 6 to sink all the damage"
There is nothing wrong with giving information to your players. It's a great way to build trust. It encourages risk taking, and helps them make a character.
However, it does undermine your sense of control, and it can also cause a bit of flaw in the narrative. And that bit where I said it encourages risk taking can function in the opposite direction; if players are particularly risk averse they may choose to miss out on opportunities their character would take because they're worried about the numbers.
Really, giving numbers is like training wheels. It gives a sense of safety and helps people learn, but eventually it should come off.
Note that this is different than telling people the numbers they needed after events; this is done almost as frequently, though I tend to prefer not doing it except in rare cases (like an after-action report "You rolled a 1 on your Perception roll, so you thought the smugglers were in the warehouse when they were really on the street"). It can speed up play a little, and ease some of the concerns, but it doesn't really have the learning benefits that telling people numbers before play happens does.
As a GM, it is your prerogative to do stuff in secret, but it's also the only thing that has made people leave any of my games of their own accord.
Don't be a slave to the dice.
Now is as good a time as any to begin fudging results. You mentioned that your wife's character tried to climb out of a pit and failed. Was that expedient for your narrative or game? Feel free to say "We're skipping this because it's not interesting; you climb out of the pit." or even say "Well, this happened, but I don't like that, so you climb out fine." whenever it fits your purpose.
Just be sure to make results meaningful; if failure wouldn't be meaningful, then perhaps you should even skip the roll entirely. If it is meaningful, but it's not expedient to the plot, have something that matters to the plot happen on failure, like a piece of gear being damaged or the like (but don't be too brutal). Remember that this goes over better when you're doing it in the players' favor than when it hurts them.
Best Answer
Whenever my players roll before they establish their actions in the fiction (my system is Dungeon World), I say something like: "Whoa whoa whoa wait a moment. What are you doing and how are you doing it? We do not even know yet whether a roll is even required for that."
I then have them explain what they do and if it triggers a move (=rolling), I'll have them roll again. Any rolls before that are invalid.
Even though they know that premature rolls are invalid, they still do it occasionally. However, for me this is a simple and clear rule to handle these situations: a roll is only valid when the GM has prompted it from the player.
Why?
Because it is an easy and clear rule. It also follows from the rules. In Dungeon World, for example, a move always follows from the fiction, and a roll always follows from a move. Thus, a roll can never precede the fiction. I presume it it similar in most game systems.
What alternatives are there?
If you as a GM want to grant your players a bit more autonomous freedom, you can of course define situations in which players can roll on their own. However, these must be clearly defined situations. For example, in my games I do not prompt for a damage roll after a successful Hack&Slash roll, because a player always rolls his damage in this situation.
Another alternative?
A roll is only valid if it's been announced before the dice were rolled. Usually, it'll be announced by the GM asking for a specific skill, but a player could announce a roll if they think it fits the action. Irrelevant rolls are ignored (and replaced by a relevant announced roll) not because the GM didn't ask for them, but because they don't fit the proposed action. This could be a good compromise between making sure the players don't cheat or use the wrong dice, and not interrupting gameplay with the GM calling every roll (credits to 3Doubloons).
Other than that, if your players cannot show the discipline for basic rolling and rerolling rules (die off the table or stuck on its edge), you probably have deeper interpersonal conflicts that you might need to resolve.