something must be wrong with your depth var because mine works:
Code:
var i:int = 500;
var sortArray:Array = [];

while(--i >= 0){
	
	var depth:Number = Math.random() * 1000 - 500;
	
	var ob:Object = {}
	
	if(Math.random() < .05) depth = 0;
	
	ob.depth = depth;
	
	sortArray.push(ob);
}

var transformArray:Array = sortArray.sortOn("depth", Array.NUMERIC | Array.DESCENDING);

for(i = 0; i<transformArray.length; i++){
	
	trace(transformArray[i].depth)
}