The battery on my 330d decided it was done with life last Saturday, no warnings, no hint of an issue to crank, except when it just wouldn't.
Connect a voltmeter to your battery, check reading, start your vehicle, and check the charge rate. It could be your alternator, but then again, depending on the age of your current battery, it could be that.
Or, stop by a Battery Centre and have it checked.