code: function( c, variance ){
              variance = typeof variance === 'number' ? variance : 0;
              var range = new ColorRange();
              range.name = this.name;
              if( c ){
                  var hue = c.hue() + variance * MathUtils.normalizedRandom();
                  range.hueConstraint = [ new FloatRange(hue,hue) ];
                  range.alphaConstraint = [ new FloatRange(c.alpha(),c.alpha()) ];
              } else {
                  range.hueConstraint = [].concat(this.hueConstraint);
                  range.alphaConstraint = [].concat(this.alphaConstraint);
              }
              range.saturationConstraint = [].concat(this.saturationConstraint);
              range.brightnessConstraint = [].concat(this.brightnessConstraint);
              range.black = this.black.copy();
              range.white = this.white.copy();
              return range;
          }
docs: creates a copy of the range but overrides the hue
  and alpha constraints taken from the given color (if specified)
  @param {toxi.color.TColor} [c]
  @param {Number} [variance]
  @return copy