Don't feel bad, I was in the same situation as you last year - I took 6 of my science classes with the same science prof, so while he was able to write me a really strong letter, I couldn't get a second one. (Like you, I didn't go to office hours so I didn't know any of the professors for my other classes.) It just never occurred to me that it would hold me back until I started looking at secondary requirements.
The bad news is that if you don't get a second one it will limit the schools you can apply to. I wish I was on my other computer so I could give you the list of schools that don't require 2 letters, but off the top of my head, you can still apply to
- UVA, Columbia, SUNY Buffalo, Tufts, Dartmouth, Cornell, and a handful of state schools (Arizona is becoming more OOS-friendly, the others are mostly in-state only so it depends on where you are).
This is obviously not a long enough list for a strong application season. Can it be done? Yes, I'll be going to Columbia next year and I met a few people on the interview trail who were in the same situation (we bonded over the fact that we were interviewing at all the same schools, haha). But is it smart to take the risk? No, not really.
If you can get a generic letter that indicates the letter-writer doesn't know you that well, I think that's the way to go. Your letter won't be a strength, and may hurt you a little - but as long as it's not negative or implying negative things ("so-and-so would be a passable candidate for med school, I suppose he/she would probably do fine there." would be bad, for example), it will still give you more shots at acceptances because you can apply to so many more schools.