debouncing on the code

You do not need 15 inputs to read 15 buttons - you need a couple of shift registers. A couple of $5 shift registers means you can save far more than that on the processor.

Debounce is irrelevant in this sketch - any "bouncing" occurs during the 10 second delays. Everyone else is probably right about the spurious inputs: it's the electronics, not the code.

Speaking of code, replace all of these:

if(o==HIGH)
  {
   
    digitalWrite(ledamb,HIGH);
    digitalWrite(ledcba,HIGH);
    digitalWrite(buzz1,HIGH);
    digitalWrite(led5,HIGH);
   
    delay(10000);
   
    digitalWrite(ledamb,LOW);
    digitalWrite(ledcba,LOW);
    digitalWrite(buzz1,LOW);
    digitalWrite(led5,LOW);
   
    }

with:

  if(o==HIGH)
    doAlarm(ledamb,ledcba,buzz1,led5);

and add a function

void doAlarm(int ledX, int ledY, int buzzer, int ledZ) {
  digitalWrite(ledX,HIGH);
  digitalWrite(ledY,HIGH);
  digitalWrite(buzzer,HIGH);
  digitalWrite(ledZ,HIGH);
   
  delay(10000);
   
  digitalWrite(ledX,LOW);
  digitalWrite(ledY,LOW);
  digitalWrite(buzzer,LOW);
  digitalWrite(ledZ,LOW);
}

It's still very horrible, but way better than what you have.