I pick a song that I think will work, and I can roughly tell what types of shots will go where just from listening. I usually keep a playlist or a note on my phone for potential song choices. I don't finalize until I have the footage.
So I put the song in, and then I dump all my footage onto the timeline. Then I start cutting and sorting. It's mostly followcam shots, so I keep things from the same run close together. I put my A-list shots (banger tricks) on track 1, decent stuff (simple tricks or meh style/landing on bigger ones) on track 2. Falls go on track 3, and then B-roll artsy filler crap on track 4. Then I either group them by run, feature, or rider depending on how many riders are in it etc. Then I start by putting things where they match, sometimes in order, but usually with gaps so I get everything matched to the music. Once I have what I want, then I go back through and fill in the gaps, or swap certain shots etc., but always keeping it in sync.
I know some people do it differently, mostly by pre-choosing/sorting. For example, setting in and out points in mpeg streamclip, and then labeling their shots with trick, rider, feature, date and location. This is probably very helpful for larger projects, or for when you want to go back and use clips on a later project. I would do this if I filmed each trick individually, but given the small scale of my work and how it's mostly follow cams, I find my way to be easy enough. I also like that I can still extend a clip back to its full length after cutting it (say you cut it after the landing, then decide later you want to show the whole ride out, you just drag the end of the clip instead of going back to the source and finding it again, then reimporting). The other way saves space, but I haven't had problems so far.