I've been using the fabulous browse-kill-ring package for years, but I just discovered that Helm has a similar feature. I now prefer Helm's show-kill-ring, since it is based on filtering candidates from the kill ring using matching, just like the rest of Helm. It's also nice to pare down the number of packages in use occasionally, since the tendency is for one's configuration to grow not shrink.

(global-set-key (kbd "M-y") 'helm-show-kill-ring)

I've bound M-y to this feature, which is normally yank-pop, since if I'm looking for a different item from the kill ring than I already have, it's probably not going to be the first alternate. Creating keyboard macros using registers instead of the kill ring has taught me this.