[solved] Pick random #'s, shuffle 2d array;errors,invalid conversion

The problem is in the following 2 line -

column  = orderCols[k][j];
row     = orderRows[orderCols[k]];

The whole thing could be made easier to read with -

// pertinent declarations

#include <LiquidCrystal.h>

#define k_COL		16
#define k_ROW		 2

char LCDarray[k_ROW][k_COL];

inline void int_swap(int& lhs, int& rhs) {
    int _lhs = lhs; lhs = rhs; rhs = _lhs;
}

int randomWriteArray2(char array[][k_COL])
{
    int orderCols[k_ROW][k_COL];
    int orderRows[k_ROW];
//  randomSeed(time);

    // fill orderCols with "0 to k_COL-1" for all k_ROW
    for ( int j = k_ROW; j--; )
    {
        for ( int k = k_COL; k--; )
        {
            orderCols[j][k] = k;
        }
    }

    // randomize orderCols
    for ( int j = k_ROW; j--; )
    {
        for ( int k = k_COL; k--; )
        {
            int_swap(orderCols[j][k], orderCols[j][random(k_COL)]);
        }
    }

    // fill orderRows with "0 to k_ROW-1"
    for ( int k = k_ROW; k--; )
    {
        orderRows[k] = k;
    }

    // randomize elements
    for ( int k = k_COL; k--; )
    {
        int_swap(orderRows[k], orderRows[random(k_ROW)]);
    }

    // print by randomizing order rows each time and printing all cells in order
    int column, row;                            // extra variables for temporary readability
    for ( int j = 0; j < k_COL; j++ )
    {
        for ( int k = 0; k < k_ROW; k++ )
        {
			column  = orderCols[k][j];
			row     = orderRows[orderCols[k]];
			
			lcd.setCursor(column, row);
			lcd.write(array[row][column]);
			
			delay(100);
        }

        // randomize row pick again
        for ( int k = k_ROW; k--; )
        {
            orderRows[k] = k;
        }

        for ( int k = k_COL; k--; )
        {
            int_swap(orderRows[k], orderRows[random(k_ROW)]);
        }
    }

//    wipeArray(array);

    return 0;
}