Interesting idea to use stTime for making the results appear more random.
I have one question, though. You seem to use the code to get a random card from the deck, is the cards[] array for storing data of which cards have already been picked, so that same card can not be picked twice in a single game? Or is it a game where the same card can be picked many times?
I'm asking because if it is so that you should never get the same card twice in a game, there's better ways for achieving that than getting a new rand() until a card is found that has not been picked. Getting "random" numbers is kinda slow and if you have 52 cards to choose from but the game has progressed to where 51 have already been drawn and there's only 1 left, looping a do while until the rand() hits that card may well freeze you game for a while.
But I guess that is not what your game is doing, just wanted to make sure.
I hope this made sense, I'm having a hard time converting my ideas to English today