function genColor() {
  // take 3 random values, presumably this will be similar to MD5 bytes
  var r = Math.floor(Math.random() * 255);
  var g = Math.floor(Math.random() * 255);
  var b = Math.floor(Math.random() * 255);

  // floor again
  r = Math.floor(r);
  g = Math.floor(g);
  b = Math.floor(b);

  if (r < 50 && g < 50 && b < 50) r += 50;

  if (r > 150 && g > 150 && b > 150) r -= 100;

  if (Math.abs(r - g) < 50 && Math.abs(r - b) < 50 && Math.abs(g - b) < 50) {
    if (r > 50) r -= 50;
    if (g > 50) g -= 50;
    if (b < 200) b += 50;
  }

  var rstr = r.toString(16);
  var gstr = g.toString(16);
  var bstr = b.toString(16);

  // pad 0's -- probably a better way, but this was easy enough.
  if (rstr.length === 1) {
    rstr = "0" + rstr;
  }
  if (gstr.length === 1) {
    gstr = "0" + gstr;
  }
  if (bstr.length === 1) {
    bstr = "0" + bstr;
  }

  return rstr + gstr + bstr;
}

