Through the "Evolution" event, you get it every now and then between gyms or in loops (when you reach a gym but hit the arrow that says "not ready") Also, Slowbro doesn't evolve, slowpoke does.
Unfortunately, yes it seems like that is purely random. As far as I know, it seems like all pokemon with multiple possible evolutions (think of eevee, or like you said poliwhirl) are just randomly selected once you select to evolve them.