Like in all of writing code there are many ways of doing this but at the end of the day you just need to present an alternating high and low on the output pin.
The way you have used millis() to define the delay is no difference from using a delay function at all.
However try this:-
void BUZloop() {
If( (millis() & 0x400) == 0){
digitalWrite(buzzer,LOW);
}
else {
digitalWrite(buzzer,HIGH);
}
}
This will allow you to do a bit of multitasking. As long as any other stuff in your loop function is over in about half a second or so, this will keep bleeping at the same rate. This will be half a second on and half a second off.