What do we mean by random? One way to prove a shuffle is (uniformly) random is to show that every element has equal probability of being shuffled to every position, including the original position.
While it may not be obviously random, the fisher-yates algorithm shuffles a list with the following steps:
In the visualization above, we are only demonstrating one possible shuffle. What if we considered all swaps and kept track of the probability each element was in each position? If a shuffle was truly random then each element (color) should occur in each position equally after shuffling.
In the visualization below, we highlight two positions before considering the swap. Colors represent elements. After an iteration we stop considering the last element, hence the diagonal shape.