TL; DR:np.random.shuffle(ndarray)仕事ができる。
だから、あなたの場合
np.random.shuffle(DataFrame.values)
DataFrame内部では、NumPy ndarrayをデータホルダーとして使用します。(DataFrameのソースコードから確認できます)
したがって、を使用するとnp.random.shuffle()、多次元配列の最初の軸に沿って配列がシャッフルされます。ただし、DataFrame残りのインデックスは変更されません。
ただし、考慮すべき点がいくつかあります。  
- 関数は何も返しません。元のオブジェクトのコピーを保持したい場合は、関数に渡す前に保持する必要があります。
- sklearn.utils.shuffle()、ユーザーtj89が示唆したように、- random_state出力を制御する別のオプションとともに指定できます。あなたは開発目的のためにそれを望むかもしれません。
- sklearn.utils.shuffle()より速いです。しかし- DataFrame、- ndarrayそれに含まれるの軸情報(インデックス、列)をシャッフルします。
ベンチマーク結果
間sklearn.utils.shuffle()とnp.random.shuffle()。
ndarray
nd = sklearn.utils.shuffle(nd)
0.10793248389381915秒。8倍高速
np.random.shuffle(nd)
0.8897626010002568秒
DataFrame
df = sklearn.utils.shuffle(df)
0.3183923360193148秒 3倍高速
np.random.shuffle(df.values)
0.9357550159329548秒
  結論:ndarrayと共に軸情報(インデックス、列)をシャッフルしても問題ない場合は、を使用しますsklearn.utils.shuffle()。それ以外の場合は、np.random.shuffle()
使用されたコード
import timeit
setup = '''
import numpy as np
import pandas as pd
import sklearn
nd = np.random.random((1000, 100))
df = pd.DataFrame(nd)
'''
timeit.timeit('nd = sklearn.utils.shuffle(nd)', setup=setup, number=1000)
timeit.timeit('np.random.shuffle(nd)', setup=setup, number=1000)
timeit.timeit('df = sklearn.utils.shuffle(df)', setup=setup, number=1000)
timeit.timeit('np.random.shuffle(df.values)', setup=setup, number=1000)
pythonベンチマーク