Edit in JSFiddle

(function(t) {
    var s = function(t, s, r, i, e, o, h, c, n) {
        this.el = t, this.sharp = !0, this.fs = n, this.filter = "", this.colours = {
            c1: s,
            c2: r,
            c3: r,
            shade: i,
            alpha: c,
            steps: e,
            wheel: o,
            light: ~~h
        }, this.init()
    };
    s.prototype.init = function() {
        if (this.cssPrefix = !1, t.browser.webkit ? this.cssPrefix = "-webkit" : t.browser.mozilla ? this.cssPrefix = "-moz" : t.browser.opera ? this.cssPrefix = "-o" : t.browser.msie && (this.cssPrefix = "-ms"), this.cssPrefix) {
            for (var s = this.colours.steps; s > 0;) this.percents = this.percentage(), this.stringBuilder(), this.colourFilter(), s -= 1, s > 0 && (this.filter += ", ");
            this.el.css("background-image", this.filter), this.fs && this.fit()
        } else console.log("sorry bro, your browser isnt supported.")
    }, s.prototype.stringBuilder = function() {
        var t = this.colours,
            s = this.catcol(t.c1),
            r = this.catcol(t.c2),
            i = this.catcol(t.c3),
            e = this.catcol(t.shade),
            o = ~~ (Math.random() * 360);
        this.filter += this.cssPrefix + "-linear-gradient(" + o + "deg," + s + " " + this.percents.a + " ," + e + " " + this.percents.b + ", " + r + " " + this.percents.c + ", " + i + " " + this.percents.d + ")"
    }, s.prototype.catcol = function(t) {
        var s = "rgba(",
            r = ")",
            i = t.toString();
        return s.concat(i).concat(r)
    }, s.prototype.fit = function() {
        this.el.css({
            width: "100%",
            height: window.innerHeight
        })
    }, s.prototype.percentage = function() {
        var t = ~~ (Math.random() * 85),
            s = t + ~~ (Math.random() * 15),
            r = s,
            i = 100 - s + ~~ (Math.random() * s),
            e = {
                a: t + "%",
                b: s + "%",
                c: r + "%",
                d: i + "%"
            };
        return e
    }, s.prototype.colourFilter = function() {
        var t = this.colours;
        t.c1 = this.colstep(t.c1), t.c1.push(t.alpha), t.c2 = this.colstep(t.c2), t.c2.push(t.alpha), t.c3 = this.colstep(t.c2), t.c3.push(t.alpha), t.shade = this.colstep(t.shade), t.shade.push(t.alpha)
    }, s.prototype.colstep = function(t) {
        var s = this.hsl(t),
            r = this.colours.wheel,
            i = 360 * r;
        return this.colours.light > 3 && (this.colours.light = 3), s[0] = s[0] - ~~ (Math.random() * i / 2) + ~~ (Math.random() * i / 2), s[1] = 100 * r, s[2] = 30 * this.colours.light, this.rgb(s)
    }, s.prototype.hsl = function(t) {
        var s = t[0] / 255,
            r = t[1] / 255,
            i = t[2] / 255,
            e = Math.max(s, r, i),
            o = Math.min(s, r, i),
            h = (e + o) / 2,
            c = 0,
            n = 0;
        e != o && (c = .5 > h ? (e - o) / (e + o) : (e - o) / (2 - e - o), n = s == e ? (r - i) / (e - o) : r == e ? 2 + (i - s) / (e - o) : 4 + (s - r) / (e - o)), h = 100 * h, c = 100 * c, n = 60 * n, 0 > n && (n += 360);
        var a = [n, c, h];
        return a
    }, s.prototype.rgb = function(t) {
        var s, r, i, e, o, h, c = t[0],
            n = t[1],
            a = t[2];
        return n /= 100, a /= 100, 0 == n ? e = o = h = 255 * a : (r = .5 >= a ? a * (n + 1) : a + n - a * n, s = 2 * a - r, i = c / 360, e = this.hue2rgb(s, r, i + 1 / 3), o = this.hue2rgb(s, r, i), h = this.hue2rgb(s, r, i - 1 / 3)), [Math.round(e), Math.round(o), Math.round(h)]
    }, s.prototype.hue2rgb = function(t, s, r) {
        var i;
        return 0 > r ? r += 1 : r > 1 && (r -= 1), i = 1 > 6 * r ? t + 6 * (s - t) * r : 1 > 2 * r ? s : 2 > 3 * r ? t + 6 * (s - t) * (2 / 3 - r) : t, 255 * i
    }, t.fn.shards = function(r, i, e, o, h, c, n, a) {
        var l = t(this),
            u = new s(l, r, i, e, o, h, c, n, a);
        return a && t(window).resize(function() {
            u.fit()
        }), this.el
    }
})(jQuery); 


$('#foobar').shards([239,199,222,.0],[123,203,189,.0],[255,203,49,.0],20,.8,2,.15,true);

              
<div id="foobar"></div>