Several getKey()

Don't do two getKeys. The program doesn't wait you know, so unless you hit the second key within about 1 millisecond of the first (and the debounce would stop that anyway) then you won't get into the second switch statement. You want something like:

void loop()
{ 
  char key = keypad.getKey();

  switch (key)     
  {
  case '*':
    Serial.println("[1] Addition");
    Serial.println("[2] Subtraction");
    Serial.println("[3] Exit");
    Serial.println("Choose"); 
    break;  

  case '1':
    //Serial.println("ONE");
    Addition();
    break;

  case '2':
    Serial.println("Subtraction");
    break;

  }  // end of switch
}  // end of loop

Don't put a default in. The default case will be no keypress.

And you need to revamp how you to the addition test. For example, what if you randomly generate 8 and 6? The answer is 14, and you can't get that back with a single kepress.