I usually do a 10-20 mins Cardio (Treadmill/Elliptical/Cycling) before I go for the weights and other exercises. Is this a good practice? Would there be any advantages if I order my routine differently?
If you're going to use those machines, use them after you use weights or perform any sort of skilled exercise.
You do not want to be fatigued before you use weights.
I suggest a targeted warm up consisting of bodyweight exercises involving the muscles you will workout (ie. bodyweight squats, jumping jacks etc) before moving onto weights.
Get the exercises that required most movements done first e.g. do deadlifts before 'core' work such as planks, stability ball work.
I can give an advice in case of weight loss training.
It is considered better to do a light warm up before a workout, just to get Your blood pumping, and energy going, and the cardio after the workout.
Main reasoning behind this is once again - carb levels in Your body are way less than in the begining of the workout. Therefore, You have less carbs to burn, and the rest of the energy has to be taken from the fat. Also, as Adam mentioned, doing cardio before a workout will take all of the muscle building/shaping energy.
Also, in case of weight loss it would be more useful to do a longer cardio training, somwhere around 35-45 mins. It is said, that fat only starts to burn for energy after about 30mins of cardio, so 35-45 mins should do great after a workout.
This is the way I have been doing cardio eversince I started going to gym.
See my answer to a similar question here.
In a nutshell, doing cardio before you lift takes up energy that you no longer have to lift. Depending how much the cardio wears you out, this effect could be significant or trivial. However any energy lost theoretically takes away from your ability to push/pull big weights - it could make the difference in grinding out that one last rep.
If the point of your cardio is just general endurance or health, you won't lose anything by moving it until after your weight routine.