The second algorithm appears to be an unrolled-by-two implementation of Fisher-Yates. This shuffle has the property of choosing one of all of the possible outcomes with a uniform distribution. What most would call a "fair" or "perfect" shuffle. There is no need to repeat the operation for extra randomness, provided your random number generator is providing unbiased results.
The first algorithm probably approaches I-don't-know-what-kind-of-distribution asymptotically. I would avoid it for a variety of reasons. Mostly because I don't know how large X needs to be before it produces a good shuffle, but I'm sure it's more than 52. I cannot think of a good application for this algorithm outside of deliberately simulating an inadequate shuffle.
The first algorithm is working in place, which is beneficial in some cases, but if you want that then you can modify the second algorithm to behave in a similar way.