How to Split And Resample Imbalanced Dataset Into Train, Validation and Test
Grzegorz's answer gets to the root of the problem - if the future data this model will be used to make predictions on will have the same distribution, then stratification by class % makes sense.

One thing I wanted to add is I typically use the normal train_test_split function and just pass the class labels to its stratify parameter like so:

train_test_split(X, y, random_state=0, stratify=y, shuffle=True)


This will both shuffle the dataset and match the %s of classes in the result of train_test_split.