i thought the radio feature played a fixed set of five random songs over and over and over.
Well, that will happen if you pick an artist that is somewhat obscure, to be sure.
I wrote a fairly similar library that additionally uses data from last.fm and pandora, and supports compiling by track similarity as well: https://github.com/gwicke/compilation