rand.length -= 3;
в случае как указал
Ilya Loginov, вы получаете новый массив. А это во 1х не совсем удаление элементов массива, а получение его новой урезанной копии, и во 2х, плохо влияет на производительность кода. представьте, что у вас будет миллион строк...
а в случае с "rand.legth -= 3", он просто удалит все элементы, которые остались за пределами длины массива
Вот тут можете подробнее изучить другие варианты