Edit in JSFiddle

var list = [];
var len = 200;
for(var i=0; i<len; ++i){
  var obj = {
    texture: Math.ceil(Math.random()*4),
    translucent: Math.random() < 0.5 ? true : false,
    z: Math.ceil(Math.random() * len)
  };
  list[i] = obj;
}

list.sort(sortFunc);

function sortFunc(a, b){
  if(a.translucent != b.translucent){
    if(b.translucent)
      return -1;
    else
      return 1;
  }
  
  if(a.texture != b.texture){
    if(a.texture < b.texture)
      return 1;
    else
      return -1;
  }

  if(a.z != b.z){
    if(a.z < b.z)
      return (a.translucent) ? 1 : -1;
    else if(a.z == b.z)
      return 0;
    else
      return (!a.translucent) ? 1 : -1;
  }

  return 0;
}

var result = document.getElementById('result');
for(var i=0; i<list.length; ++i){
    var pElement = document.createElement('p');
    var str = "translucent: " + list[i].translucent + " texture: " +list[i].texture + " z: " + list[i].z;
    var textNode = document.createTextNode(str);
    pElement.appendChild(textNode);
    result.appendChild(pElement);
    console.dir(str);
}