ENH: Shuffle DataFrame
#### Is your feature request related to a problem?

Multiple inquiries on Stackoverflow regarding how to shuffle/permutation of dataframes.
https://stackoverflow.com/questions/15772009/shuffling-permutating-a-dataframe-in-pandas
https://stackoverflow.com/questions/24701217/randomizing-shuffling-rows-in-a-dataframe-in-pandas
https://stackoverflow.com/questions/55538496/shuffling-a-dataframe

#### Describe the solution you'd like

DataFrame.shuffle(self, shuffle_amount, labels=None, groupe_tuples: bool: = False, inplace : bool = False)

Shuffles values in dataframe (along an axis).

Returns a new shuffled DataFrame if `inplace` argument is
``false``, otherwise updates the original DataFrame and returns None.

Parameters
----------
shuffle_amount : double
    The percentage of each column to be shuffled

labels : single label or list-like
    Index or column labels to shuffle.

group_tuples : bool, default False
    Whether to shuffle labels independently or together

inplace : bool, default False
     If true, perform operation in-place

Returns
-------
DataFrame
    Shuffled values

#### API breaking implications

No backwards compatibility issues

#### Describe alternatives you've considered

Users could create custom functions to achieve desired results. All examples listed above have such functions
