First of all, I would suggest running some tests to see if the problem is happening in your other bathroom. If so, your water heater is probably the culprit.
How old is your water heater? Ours was exhibiting similar symptoms last year - running out of hot water, super hot water, lukewarm water. We have an electric 50 gal. tank water heater that wasn't more than 6-7 years old. We rolled the dice and replaced the thermostats since my online research indicated that this could be the issue. Problem solved. No plumber or electrician needed. The parts are less than $30. Replacement is not difficult and does not require draining the tank. Just be sure to shut off the breaker before opening up the access panels. There are lots of tutorials online. You may also want to research the signs of a failing element.
On the other hand, if your water heater is old (10 yrs or more) or you see any leaking around the tank, you may need to replace it. I replaced one in my early twenties. It's not difficult if you have an electric water heater and you buy the same size replacement heater. Again, caution is in order with making the electrical connection.
If you find the problem is only occurring in your one shower, it could be an issue with the mechanism that mixes hot and cold water. We have a Moen faucet in our shower that uses a cartridge in the mixer. A random piece of gunk in the city water clogged part of the plastic cartridge causing issues with the water temp. Again, this was a DIY fix. It did require a special tool to pull the cartridge. We bought a new cartridge at our local home center, reinstalled, and problem solved.