Need some help with millis() and debouncing. Driving me nuts!

There is an example that comes with the Arduino IDE called BlinkWithoutDelay (it's under File > Examples > Digital). Play with that and study it until you know exactly how and why it works. It's been discussed extensively here, so feel free to ask questions but I might search the forum a bit first too.

Use a library for the buttons, that way you don't have to worry about details like debouncing and you can focus on the main goal. My favorite is here, but there are others out there too, GIYF.