Mixxx DJ Software
This software is normally used for DJ-ing, but it's also a very capable playlist and library management tool for large music libraries.
Building a playlist for running
You'll need to know what BPM your run cadence is. Mine is right around 160BPM. You'll be using Mixxx's beat detection to scan your music library, and then exporting those songs to something like an MP3 player or phone for local playback.
Import your library into Mixxx
-
In the left hand nav, choose Analyze
By default, only tracks w/o analysis are visible. You can show all tracks in your library via the All radio button
Select the tracks you want to analyze
Click Analyze
When it's done, tracks will have a very accurate BPM
Go back to Tracks
Sort by BPM
Select all the tracks roughly +/- 2 BPM of your ideal speed, so for me that's 158-162 BPM.
Create a new playlist of those songs
Right click the playlist and choose Export Track Files. Select a folder to put te files into.
Drop that folder onto your MP3 player or phone and hit shuffle and run