Imperfection in randomness in VLC shuffle playlist - why?
This is just speculation, but perhaps what VLC is attempting is to simulate... perfect randomness. That is, each song is picked uniformly at random, independently of previous songs. According to the coupon collector problem, if you have $n$ songs in your list and want to hear all of them, you will have to wait for roughly $n\ln n$ songs to be played. By that time, the average song will have been heard $\ln n$ times.

The problem seems to be not in VLC, but rather in the random experiment that VLC is trying to simulate. VLC is not trying to shuffle your playlist and play it through. Rather, it seems to just pick a new random song each time, regardless of the past.