I generated a lot of my worse PLLs, like my Y-perm and Z-perm.
You can find a lot of cool algorithms for cases--you just need to find out which ones are easy to execute, and have a relatively low movecount.
What happens a lot of the time is one learns an algorithm, uses it for awhile, and find out it sucks. It really sucks. The person then either:
a.) tries to improve their times on that algorithm;
b.) learns a different algorithm from a site;
c.) generates a new algorithm.
My Y-perm was REALLY slow. It's the one a lot of people use (F R U' R' U' R U R' F' R U R' U' R' F R F'). I was getting 2.5s with it.
So I generated one using CubeExplorer (run a Google search if you want to learn more), and I found:
R2 U' R2 U' R2 U y' R U R' B2 R U' R'.
I now get 1.7 with it.