audio track and video track are not the same length
When you import a video with audio into the sequencer, the following happens:


The video and audio are split into individual tracks, so they become effectively separate entities.
The audio track is imported into the sequencer while respecting the total play-length of the audio, So there is no pitch shift. (Basically, the audio is never sped up or slowed down, it will always sound right)
The video is imported frame-for-frame at the Frame Rate set in Blender's render panel, this means there is no frame interpolation or frame dropping going on.(Basically, the video will always play frame-by-frame, so it will be sped up or slowed down if the source video does not match the Frame Rate setting in Blender)


This has the unpleasant effect that if you import a 10 second video that is 24fps into Blender's 25fps timeline, the audio will last 10 seconds, but the video track (which has 240frames) will be squeezed into 240/25 = 9.6 seconds, hence the mismatch.

So, if all your source videos are the same FPS, then just set the Blender fps to that number, and you should be fine. If you have source videos of different FPS, then you can use the Speed Control strip to adjust the timing of each.