Take a look at
Lingua::EN::Nickname as a start.
It's old (last update in 2003), and it's biased toward English names; but it cites its sources. The URLs have changed (no surprise that), but the Genweb project is still alive and there is a link to a nick-names sub-project.
----
I Go Back to Sleep, Now.
OGB