As programming is concerned, shuffling a deck equals to a random exchange in the sequence of the cards. There are 2 main algorithms which are used in today's shuffling programs: the first one simply assigns a casual number to each card and then orders them according to the assigned number; the second one (known as the Knut Shuffle) exchanges each card's position randomly with another card in the deck.

Biska chose to use an advanced version of the Knut Shuffles as, in fact, every time a deck is shuffled the algorithm is repeatad two times.
In addition to this, during the same game and to attain to what happens in the real thing, cards are not reordered at the end of each hand but are shuffled according to the sequence they were in at that moment. This grants an even more random shuffling of the cards.

For further information on the Knut Shuffling algorithm you may wish to visit this url: