Does IPv6 have a private IP addressing scheme?
IPv6 has ULA (Unique Local Addresses). The idea is that everybody can generate a different prefix for local use so that when networks are merged our connected in the future the addresses don't conflict.
You usually don't use NAT with IPv6 though so these addresses are for internal use only, not for reaching the internet. Hosts have multiple IPv6 Address so they can get both ULA and global addresses at the same time. The ULA addresses can then be used internally while the global addresses are used to connect outside. I have also seen cases where ULA is used internally and a proxy server is used for external connectivity.
You've gotten a lot of good answers regarding the "what" of "private addresses" in IPv6 (ULA address space). But I just wanted to add a quick note about the why.
ULA does not exist for the purpose of NAT. It might end up being used that way, (I'm hoping it doesn't!) but the original purpose for ULA address space was for internal only resources.
For instance, there is a good chance your network printer does not need to be reached from the other end of the Internet. If so, that makes it a perfect candidate for ULA address space. Or maybe your company has an intranet portal, or HR management system, or knowledbase wiki, or ticketing system, or any other slew of applications that have no business being accessed from the Internet. These too, are perfect candidates for receiving ULA address space.
Note, having a ULA address does not preclude you from having a Firewall protecting your network. ULA (like RFC1918 IPv4 private addresses) aren't meant to be routeable on the Internet... however, that isn't something magically built into all Routers, it is simply a function of access-list filtering dropping traffic from a source/destination of a Private/ULA address -- and not something you should assume your ISP is doing. Do it yourself, on the Edge Router/Firewall you control, so you know for a fact no private addresses are coming into your network from the external world. Look up Bogon filtering for more details.
Answering the edited questions...
IPv6 has Unique Local Addresses, see RFC1493. These are from the fd00::/8 block and should not be used on the Internet. There is also an fc00::/8 block that is semi-related but the usage definition is still being worked out and is not available for use.
This address pool is thought to be large enough that if you randomly assign yourself a block from that range you will have a good chance of not colliding with other users of ULA space. This is only important if you have to talk from one network using ULA to a network under different administrative control that is also using ULA, since there is no large-scale NAT deployed for IPv6 (yet, see other answer's comment thread). Also there are registries where you can mark usage of a network block to (hopefully) reduce the collision probability.