I don't get exactly how a transaction id confirms that an online casino is not rigged.
Let's use SatoshiDice (SD) as an example.
If they claimed to use a random number to determine if you won, it wouldn't be possible for you to know if the numbers they are using are truly random or not. They could insert their own "losing" numbers whenever they want and you wouldn't know. However, if they use your transactionID as the random number, then you know as soon as you submit your transaction whether or not you've won. You don't need them to tell you, you can just look at your transactionID as see for yourself. If your transactionID indicates that you won, but they don't pay out, then they aren't "fair". So, it would seem that would be "provably fair".
However, there is a problem with that solution. You could run your wallet offline and keep generating transactions without relaying them to peers until you see that you've "won". Then you can delete all the "losing" transactions and submit only the winning ones when you bring the wallet back online. So, while using a transactionID makes it impossible for SD to cheat, it makes it very easy for the player to cheat.
So, what SD does is they generate a "secret number" before the day begins (actually, I think they've pre-generated the next 10 years of secret numbers already). SD doesn't know what your transactionID will be, and you don't know what SD's secret number is. Now instead of using just your transactionID, SD calculates hmac_sha512(secret number,transactionID). Since they don't have control over your transactionID, the results of the calculation are unpredictable and as such are essentially random to SD. Since you don't know what the secret number is, you can't pre-calculate hmac_sha512(secret number,transactionID) to see if you'll win before you broadcast your transaction.
There is still one problem here. Since the "secret number" is a secret, there is no way to know if SD is just changing the value of the secret number on each transaction to avoid paying big wins. If they tell everyone what the secret was after the bets are all settled, then nobody will know if they changed the secret after receiving many bets. If they tell everyone what the secret is before the bets are received, then everyone can once again pre-calculate and only submit the winners.
Instead what SD does is compute a sha256sum of each secret ahead of time and release publicly the value of that hash. Since this hash value is known ahead of time, they can't change the value of the secret later (because it would result in a different hash value), but the players can't use the value of the hash to pre-calculate their transactions since it isn't possible to reverse the sha256sum algorithm to determine what the secret number is. Then at the end of the day (after all bets have been settled), SD releases the actual secret number. By calculating sha256sum on that secret number, you can verify that it results in the same hash value that was released ahead of time.
Now you have a "provably fair" system. SD can't alter the secret number, and has no control over the transactionID that the players submit. The player can't check to see if their bet will win before submitting it because they don't have the secret number. It is impossible to predict the results of the hmac_sha512 calculation, so the resulting number is essentially random. And at the end of the day, everybody can verify that every bet anybody placed was payed appropriately.