Thanks everyone for all the support, comments, and letting me know about some bugs! One of the biggest challenges I had was finding an algorithm to determine the "difference" between two hex codes. Anyone have any tips on that?
Don't let the complex versions put you down, the simplest formula is good enough, just Math.sqrt( Math.pow(L1-L2, 2) + Math.pow(a1-a2, 2) + Math.pow(b1-b2, 2) ).