I've been in the same shoes as you and I can tell you most of these suggestions, while good to suggest, are difficult to execute for one simple reason:

Why do you care to learn said language?

When I started learning F#, I tried these traditional suggestions: write some data structures and algorithms, go through Project Euler problems. I probably wrote close to a few hundred lines of F#. You know what ended up happening? I can't remember a lick of F#. How could that have happened?

I had no palpable reason to learn F#. I like writing web applications, and the ones that I do like to write have very little use for concurrency or functional programming (also the reason why I'm having trouble getting motivated to write any Haskell/Erlang).

Compare this with Ruby (Rails). I had an idea for a web app. I work on the .NET stack during the day and I wanted to learn another language. I heard that Python and Ruby were the best ones to pick up, and since they are so similar in terms of end goal, I chose Ruby because it simply intrigued me more. I've written close to a few thousand lines of Ruby and I'm at the point where I could write it ad hoc and make something off the top of my head. So what worked this time around?

The keywords here are "idea" and "intrigue."

The number one thing that will help you learn a new language is to have an idea of something you want to build.

It doesn't have to be a new idea. Maybe you want to try cloning ThreeWords.me. Maybe you want to automate picking stocks (a personal favorite). Whatever it is, you have to have an idea of something you want to build, not only because it helps you define the language you should use (and thus give you a compelling reason to learn X instead of Y), but also because it will give you the intrinsic motivation to retain that knowledge after you've executed on your idea. You'll feel like the language has a purpose in your life, an actual tool you can use from the proverbial programmer's toolbox.

The other piece, as I mentioned, is intrigue. You have to want to learn the language to really get any benefit from it. As I mentioned earlier, it ultimately came down to a gut feeling as to why I chose Ruby/Rails over Python/Django(/Pylons/Web2py). This is so important, because ultimately if you're already trying to learn a language outside of work, you've got an internal motivator that isn't driven by profit or work; it's driven by excitement and fun. So follow through on that promise to yourself to have fun by picking a language that makes coding fun! If Haskell bores you but Erlang gets you going, even if Haskell is considered to be a more hardcore functional language...WHO CARES! You're doing this for fun, NOT with a gun to your head or a job on the line. You need to do what's right for you. I don't think I've ever met an individual who said "I picked the wrong language to learn, I'm dumber than I was before!"

TLDR: You need to have a reason to learn said language(s) by first having something to build. That will help you choose a subset of languages you'll actually want to learn. When filtering down between similar languages, go with your gut and choose the one that excites you the most. You simply can't go wrong, and there's no better way to learn a language faster than by building something you've always wanted to make.