delete действует ) вот так он и действует
не поверишь:

Код AS3:
var arr:Array = new Array();
trace(arr[123]); // выдаст undefined 0_о
так что в цикле просто проверяй на undefined... в идеале 2 раза - в наружном и во внутреннем.
А еще лучше:

Код AS3:
public function hitsp():void {
var i:uint;
var j:uint;
for each (i in listvr) {
for each (j in listvz) {
if (listvr[i].hitTestObject(listvz[j])) {
removeChild(listvr[i]);
removeChild(listvz[j]);
delete listvr[i];
delete listvz[j];
break;
}
}
}
}